GuerraAna / kotlin_multiplatform_mobile

Desafios e resoluções a problemas relacionados ao desenvolvimento multiplataforma para mobile

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🇵🇹 🇧🇷 Kotlin Multiplatform Mobile (KMM)

Desafios e resoluções a problemas relacionados ao desenvolvimento multiplataforma para mobile. Uma playlist imperdível do zero de quem teve que criar um projeto do zero. Conto os problemas que passei, como contornei, soluções encontradas, desafios etc. Pretendo documentar tudo aqui com código e videos no youtube para te ajudar.

O que você vai encontrar aqui?

Um projeto template já configurado com o modulo de dependencias para iniciar seu projeto multiplataforma móvel assim como vários vídeos com resoluções aos desafios comuns em um projeto kmm (vide branches abaixo)

Branches

🌳 Branches

Nome e Descrição da Branch 📺 UML-Diagram
A) kmm_ready_to_use_sample_project
Projeto pronto para usar apenas com módulo de buildSrc (dependency management)
B) kmm_with_shared_viewmodel
Projeto com A) e viewmodel compartilhada em kmm
C) kmm_with_viewmodel_and_mockk
Projeto com A), B) e framework de mock para testes mockk
D) kmm_viewmodel_mockk_database
Projeto com A), B), C) e banco de dados compartilhado sqldelight
E) kmm_viewmodel_mockk_db_logger
Projeto com A), B), C), D) logger e shimmer
F) kmm_with_instrumented_tests
Projeto com A), B), C), D), E) e testes instrumentados no androidMain
G) kmm_with_ktor
Projeto com A), B), C), D), E), F) e ktor com respository e viewmodel retornando flow
H) kmm_shared_build_config
Projeto com A), B), C), D), E), F), G) e common config (buildConfig) compartilhado entre android e iOS
I) kmm_shared_image_resource
Projeto com A), B), C), D), E), F), G), H) e imagens compartilhadas entre android e iOS
J) kmm_di_and_text_resource
Projeto com A), B), C), D), E), F), G), H), I) e textos compartilhados entre android e iOS
L) kmm_shared_color_resource
Projeto com A), B), C), D), E), F), G), H), I), J) e cores compartilhadas entre android e iOS
M) kmm_responsive_windows_size
Projeto com A), B), C), D), E), F), G), H), I), J), L) e telas responsivas compartilhadas entre android e iOS
N) kmm_shared_settings
Projeto com A), B), C), D), E), F), G), H), I), J), L), M) e settings & preferências compartilhadas entre android e iOS
O) kmm_custom_style_fonts
Projeto com A), B), C), D), E), F), G), H), I), J), L), M), N) e estilos & fontes customizadas android
P) kmm_usage_color_resource
Projeto com A), B), C), D), E), F), G), H), I), J), L), M), N), P) e uso prático do recurso de cores (theme) android
Q) kmm_usage_spacing_resource
Projeto com A), B), C), D), E), F), G), H), I), J), L), M), N), P), O) e uso prático do recurso de dimens (spacing) android
R) kmm_shared_font_sizing
Projeto com A), B), C), D), E), F), G), H), I), J), L), M), N), P), O), Q) e uso prático do recurso de tamanho de textos (font sizing) android
S) kmm_custom_spacers
Projeto com A), B), C), D), E), F), G), H), I), J), L), M), N), P), O), Q), R) e uso prático do spacer customizado fazendo uso dos espaços compartilhados (spacing resource) android
T) kmm_custom_listview_item
Projeto com A) até S) e uso prático do list view item customizado fazendo uso do theme compartilhado (color resource) android
U) kmm_custom_button_set
Projeto com A) até T) e criação de um set de botões customizáveis jetpack compose android
V) kmm_shared_dimens_resource
Projeto com A) até U) e recursos de dimensões compartilhados em kmm e uso prático dos mesmos
X) kmm_debug_proguard_release
Projeto com A) até V) como depurar, ofuscar e otimizar tamanho de código com proguard em release
W) kmm_textfield_with_erro_states
Projeto com A) até X) como criar campo de texo e validar entradas de erro com estados em compose
Y) kmm_loading_button_lottie
Projeto com A) até W) como criar loading button com lottie em compose

Posso Ajudar/Contribuir?

Seja também um multiplicador de conhecimento. Mostre esse repositório para sua COMUNIDADE/GRUPO/SLACK MOBILE :

👇 Texto com link para postar nas redes sociais 👇
Repositório bacana em Português 🇵🇹 🇧🇷 para quem pretende criar um projeto multiplataforma mobile. Vai te evitar muita dor de cabeça e economizar muito tempo no trabalho. https://bit.ly/kotlin-multiplatform-mobile

🧪 CODELABS / VÍDEOS / RESOLUçÕES

Titulo 📺 Youtube Link
✔️ KMM - COMO CRIAR PROJETO KOTLIN MULTIPLATFORM MOBILE PARA ANDROID E IOS
✔️ GERENCIAR DEPENDÊNCIAS - COMO CRIAR GERENCIAMENTO DE VERSÕES buildSrc EM PROJETO MULTIPLATFORMA
✔️ VERSIONAMENTO - COMO FAZER UPLOAD DO PROJETO ANDROID STUDIO DIRETO PARA GITHUB
✔️ COMPOSE ON KMM - COMO ADICIONAR COMPOSE EM PROJETO KOTLIN MULTIPLATFORM MOBILE
✔️ [CLONAR PROJETO] COMO IMPORTAR E USAR REPOSITÓRIO DO GITHUB NO ANDROID STUDIO
✔️ [kmm shared viewmodel] COMO COMPARTILHAR VIEWMODEL EM PROJETO KOTLIN MULTIPLATFORM
✔️ [MOCKK KMM] COMO FAZER SETUP DE MOCKK EM PROJETO KOTLIN MULTIPLATFORM
✔️ SQLDELIGHT KMM - COMO FAZER SETUP DE BANCO DE DADOS SQLDELIGHT EM PROJETO KOTLIN MULTIPLATFORM
✔️ VIEWMODEL SQLDELIGHT - COMO ACESSAR BANCO DE DADOS NO VIEWMODEL EM PROJETO MULTIPLATFORM MOBILE
✔️ EFEITO SHIMMER - COMO CRIAR EFEITO DE SOMBRA CINTILANTE DURANTE LOADING COMPOSE
✔️ LOGGER KMM - COMO CRIAR LOGGER CUSTOMIZADO, COMPARTILHADO EM KOTLIN MULTIPLATFORM
✔️ [AndroidMain] COMO CONFIGURAR PACOTE DE TESTE INSTRUMENTADO QUE USAM CONTEXTO EM KOTLIN MULTIPLATFORM
✔️ BUILD TYPES KMM - COMO CRIAR BUILDTYPES E BUILDVARIANTS EM KOTLIN MULTIPLATFORM MOBILE
✔️ Environment - COMO INJETAR VARIÁVEL DE AMBIENTE EM KOTLIN MULTIPLATFORM KMM
✔️ KTOR CLIENT HTTP - COMO CRIAR CLIENTCONFIG PARA CLIENTHTTP EM KOTLIN MULTIPLATFORM MOBILE
✔️ ENDPOINTS KTOR - COMO FAZER REQUISIçÃO DE API COM KTOR EM KOTLIN MULTIPLATFORM MOBILE ANDROID
✔️ KTOR INTERCEPTOR - COMO MAPEAR A RESPOSTA DO SERVIDOR EM CASOS DE EXCEçÃO KTOR KOTLIN KMM ANDROID
✔️ VIEWMODEL FLOW - COMO CRIAR RESPOSITÓRIO QUE RETORNA FLOW PARA VIEWMODEL COM KTOR EM KOTLIN KMM
✔️ SECRET API KEYS - COMO CRIPTOGRAFAR API KEYS ANDROID EM PROJETO KOTLIN MULTIPLATFORM MOBILE
✔️ Shared BuildConfig - COMO COMPARTILHAR VARIÁVEIS DE AMBIENTE ENTRE ANDROID E IOS KMM?
✔️ FIGMA ASSETS - COMO FAZER DONWLOAD DE ASSETS, IMAGENS AUTOMATICAMENTE COM SCRIPT BASH ANDROID
✔️ Shared Object - COMO CRIAR BASH SCRIPT PARA GERAR CLASSE OU OBJETOS EM KOTLIN ANDROID
✔️ Import Translation - COMO USAR BASH SCRIPT PARA IMPORTAR TEXTOS DE TRADUçÃO ANDROID
✔️ Shared ImageResource - COMO COMPARTILHAR ImageResource ENTRE ANDROID E IOS KMM?
✔️ Dependency Injection - COMO FAZER INJEçÃO DE DEPENDÊNCIAS ENTRE ANDROID E IOS KMM
✔️ Shared TextResource - COMO COMPARTILHAR StringResource ENTRE ANDROID E IOS KMM
✔️ Shared ColorResource - COMO COMPARTILHAR RECURSO DE CORES ENTRE ANDROID E IOS KMM
✔️ Responsive WindowsSize - COMO DAR SUPORTE A TAMANHOS DE TELAS DIFERENTES EM ANDROID E IOS KMM
✔️ Disponibilizar Settings - COMO COMPARTILHAR SETTINGS E PREFERÊNCIAS ENTRE ANDROID E IOS KMM
✔️ Custom typography - COMO DISPONIBILIZAR TIPOGRAFIA E ESTILOS CUSTOMIZADOS EM COMPOSE
✔️ ColorResource - COMO DISPONIBILIZAR RECURSO DE CORES DIRETO NO MATERIAL THEME COMPOSE
✔️ SpacingResource - COMO DISPONIBILIZAR RECURSO DE DIMENSÃO DIRETO NO MATERIAL THEME COMPOSE
✔️ FontSize - COMO DISPONIBILIZAR TAMANHO DE FONTES EM UM PROJETO KOTLIN MULTIPLATAFORMA KMM
✔️ SpacingResource - COMO USAR RECURSO DE DIMENSÃO COMPARTILHADO NO SPACER ANDROID COMPOSE KMM
✔️ ListView Item - COMO CRIAR LIST VIEW ITEM CUSTOMIZADO COMPOSE KOTLIN MULTIPLATAFORMA KMM
🚩 AGENDADO: 13/02/2023 ✔️ Custom Button - COMO CRIAR BOTÕES CUSTOMIZADOS PARA ANDROID COMPOSE KMM
🚩 AGENDADO: 16/02/2023 ✔️ DimensResource - COMO COMPARTILHAR ALTURA E LARGURA DOS COMPONENTES ENTRE ANDROID E IOS KMM?
🚩 AGENDADO: 20/02/2023 ⚡ PROGUARD - COMO OFUSCAR, DEPURAR, OTIMIZAR E REDUZIR TAMANHO DO CÓDIGO COM PROGUARD ANDROID?
🚩 AGENDADO: 23/02/2023 ✔️ CUSTOM TEXTFIELD - COMO CRIAR E VERIFICAR ENTRADAS EM CAMPOS DE TEXTO ANDROID COMPOSE?
🚩 AGENDADO: 27/02/2023 ✔️ LOADING BUTTON - COMO FAZER ANIMAçÃO DE LOADING EM BOTÃO COM LOTTIE ANIMATION ANDROID COMPOSE?

Ta Curtindo?

Algum dos meus vídeos, posts ou repositórios te salvou muito tempo ou te ajudou no trabalho? Não é clichê não, eu produzo mais com café mesmo. 😁 É minha gasolina ⛽️ Me presentea com um café aqui: https://bit.ly/umCafeGb

Caso não possa, me deixa ao menos uma estrelinha ⭐ aqui no repositório. Obrigado pelo suporte. 😎🤜🤛

image

Quer fazer networking, mas não sabe como?

Telegram: Entra no nosso do telegram para um contato mais rápido e direto: https://bit.ly/telegramGb image

Discord: Networking, vagas, livros e muito muito conhecimento compartilhado: https://bit.ly/discordGb

image

Techblog BugOnSoftware

Você prefere um conteúdo por escrito de alta qualidade e extremamente didático em Português? Da uma olhada aqui: https://bit.ly/techblogGb image

⛓️ CONECTE-SE COMIGO


OUTROS REPOSITÓRIOS QUE VOCÊ VAI CURTIR MUITO:

🇧🇷 Almanac do Desenvolvedor Profissional Android 🇵🇹
👉 DESAFIOS E PROBLEMAS COMUNS NA VIDA DO DESENVOLVEDOR ANDROID
👉 GOOGLE DEVELOPER CERTIFICATION
👉 JETPACK COMPOSE ARSENAL

About

Desafios e resoluções a problemas relacionados ao desenvolvimento multiplataforma para mobile


Languages

Language:Kotlin 90.9%Language:Shell 8.9%Language:Swift 0.2%