GraphQL в мобильной разработке
Интересная статья про использование GraphQL в мобилках. Для тех, кто не в курсе GraphQL – это язык запросов, с помощью которого клиент сам указывает набор данных, которые хочет получить с бэка. Интересно, что на практике, в проде до сих пор не удалось с ним поработать, кругом REST, хотя инструмент вполне себе достойный.
P.S. Добавил группу @mobile_native_chat к каналу для обсуждений, все посты должны транслироваться туда – можно хейтить 😁
Интересная статья про использование GraphQL в мобилках. Для тех, кто не в курсе GraphQL – это язык запросов, с помощью которого клиент сам указывает набор данных, которые хочет получить с бэка. Интересно, что на практике, в проде до сих пор не удалось с ним поработать, кругом REST, хотя инструмент вполне себе достойный.
P.S. Добавил группу @mobile_native_chat к каналу для обсуждений, все посты должны транслироваться туда – можно хейтить 😁
👍16💩5
Дайджест недели
Разобрал еще какую-то часть избранного и еще чутка осталось, в целом есть что почитать. К дайджестам добавил ссылки (Previous, Next) для удобной навигации.
Android
• Jetpack Compose Enables JSON Defined View Layout
• Things every Kotlin Developer should know about Coroutines
• Книга "Jetpack Compose Internals"
• Смотрим исходники Jetpack Compose
• Делаем работу с Koin проще
• Пишем чат под Android на Websocket'ах
• 5 Ways of Creating Android LiveData
• Sending ViewModel Events to the UI in Android
• Android SDK Development Best Practices
• Measuring time and durations in Kotlin (Duration API)
• Building design system with Jetpack Compose
• How to Securely Implement TLS Certificate Checking in Android Apps
• GraphQL в мобильной разработке. Пишем клиент для Android
• Debugging like a pro in Android Studio
• Android Vitals — Разбираем холодный запуск
iOS
• Bottom Sheet, перейдём на «ты»?
• iOS App Architecture in 2022
• Class, Struct и Protocol в Swift
• How to Use Swift Functions For Dependency Injection
• Self & Self.Type & self in Swift
• Check Internet Connectivity with NWPathMonitor In Swift
• WebSockets In Swift — IOS Development
• SwiftLint Integration in Xcode and GitLab CI
• Microapps architecture in Swift. SPM basics.
• Networking With Combine and SwiftUI
• How to Create Multiple Themes in a SwiftUI Application
Кроссплатформа / Разработка
• Что хуже: Кotlin Multiplatform или Flutter?
• GraphQL в мобильной разработке
• Kotlin Multiplatform Wizard
• Optimising CI build times of a Kotlin Multiplatform project
• KMP vs Flutter vs React Native
• What We Learned Using KMM For iOS
• Пакеты Flutter, которые я использую в каждом проекте
• Kermit and Crashlytics (KMM)
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
Разобрал еще какую-то часть избранного и еще чутка осталось, в целом есть что почитать. К дайджестам добавил ссылки (Previous, Next) для удобной навигации.
Android
• Jetpack Compose Enables JSON Defined View Layout
• Things every Kotlin Developer should know about Coroutines
• Книга "Jetpack Compose Internals"
• Смотрим исходники Jetpack Compose
• Делаем работу с Koin проще
• Пишем чат под Android на Websocket'ах
• 5 Ways of Creating Android LiveData
• Sending ViewModel Events to the UI in Android
• Android SDK Development Best Practices
• Measuring time and durations in Kotlin (Duration API)
• Building design system with Jetpack Compose
• How to Securely Implement TLS Certificate Checking in Android Apps
• GraphQL в мобильной разработке. Пишем клиент для Android
• Debugging like a pro in Android Studio
• Android Vitals — Разбираем холодный запуск
iOS
• Bottom Sheet, перейдём на «ты»?
• iOS App Architecture in 2022
• Class, Struct и Protocol в Swift
• How to Use Swift Functions For Dependency Injection
• Self & Self.Type & self in Swift
• Check Internet Connectivity with NWPathMonitor In Swift
• WebSockets In Swift — IOS Development
• SwiftLint Integration in Xcode and GitLab CI
• Microapps architecture in Swift. SPM basics.
• Networking With Combine and SwiftUI
• How to Create Multiple Themes in a SwiftUI Application
Кроссплатформа / Разработка
• Что хуже: Кotlin Multiplatform или Flutter?
• GraphQL в мобильной разработке
• Kotlin Multiplatform Wizard
• Optimising CI build times of a Kotlin Multiplatform project
• KMP vs Flutter vs React Native
• What We Learned Using KMM For iOS
• Пакеты Flutter, которые я использую в каждом проекте
• Kermit and Crashlytics (KMM)
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
🔥6👍4
Best 15 Android Studio shortcuts and tips to boost your productivity
Shortcuts для повышения вашей производительности. Если по каким-либо причинам не юзаете, обязательно посмотрите, т.к. во многих случаях, шорткаты значительно экономят время.
И еще одна статья, от автора
👉 Use Android Studio like a pro — Best navigation shortcuts and tips
Shortcuts для повышения вашей производительности. Если по каким-либо причинам не юзаете, обязательно посмотрите, т.к. во многих случаях, шорткаты значительно экономят время.
И еще одна статья, от автора
👉 Use Android Studio like a pro — Best navigation shortcuts and tips
🔥8👍2
10 iOS Development Tips for 2022: Swift and Xcode
Cоветы для iOS-разработчиков, которые позволят повысить продуктивность.
Cоветы для iOS-разработчиков, которые позволят повысить продуктивность.
👍6
Force Update — механизм принудительного обновления мобильных приложений
Полезная статья, в которой рассмотрены кейсы принудительного обновления и некоторые инструменты для реализации.
От себя добавлю: лучше конечно логику версионирования мобилок хранить на своём сервере – это позволит вам более гибко управлять обновлениями + не будет зависимостей от сторонних сервисов. Так же, для себя выделяю 2 кейса, при которых оправдан force update:
1. Критичный баг в мобилках. При очередном релизе вы обнаружили, что у вас не работает какой-нибудь главный экран, например "Авторизация", в таком случае имеет смысл выпустить hotfix и добавить force update предыдущей версии.
2. Старые версии мобильных клиентов. Особенно актуально для крупных проектов, в которых довольно часто меняется/обновляется функционал. Совместимость это хорошо, но бывают кейсы, когда нужно вносить изменения в существующие эндпоинты на бэке и при этом, в старых версиях клиентов уже невозможно поправить логику.
Полезная статья, в которой рассмотрены кейсы принудительного обновления и некоторые инструменты для реализации.
От себя добавлю: лучше конечно логику версионирования мобилок хранить на своём сервере – это позволит вам более гибко управлять обновлениями + не будет зависимостей от сторонних сервисов. Так же, для себя выделяю 2 кейса, при которых оправдан force update:
1. Критичный баг в мобилках. При очередном релизе вы обнаружили, что у вас не работает какой-нибудь главный экран, например "Авторизация", в таком случае имеет смысл выпустить hotfix и добавить force update предыдущей версии.
2. Старые версии мобильных клиентов. Особенно актуально для крупных проектов, в которых довольно часто меняется/обновляется функционал. Совместимость это хорошо, но бывают кейсы, когда нужно вносить изменения в существующие эндпоинты на бэке и при этом, в старых версиях клиентов уже невозможно поправить логику.
👍21🔥3
Traditional MVVM with Jetpack Compose and StateFlow
Пример реализации MVVM в связке Jetpack Compose + StateFlow. В целом обычный MVVM, только вместо привычных View, Composable.
Код проекта можно посмотреть тут: Compose-MVVM
Пример реализации MVVM в связке Jetpack Compose + StateFlow. В целом обычный MVVM, только вместо привычных View, Composable.
Код проекта можно посмотреть тут: Compose-MVVM
👍17🔥3
All about Preferences DataStore
Подробный гайд по Preferences DataStore: создание, чтение, запись, обработка ошибок, миграция с SharedPreferences.
Подробный гайд по Preferences DataStore: создание, чтение, запись, обработка ошибок, миграция с SharedPreferences.
👍14
Microapps architecture in Swift
Несколько статей, на тему организации модульной архитектуры. Первая статья вводная, про организацию модулей и определения базовых штук, а вторая статья уже про конкретный фича-модуль и зависимости (на примере модуля дизайн системы).
👉 Microapps architecture in Swift. SPM basics.
👉 Microapps architecture in Swift. Feature modules.
Несколько статей, на тему организации модульной архитектуры. Первая статья вводная, про организацию модулей и определения базовых штук, а вторая статья уже про конкретный фича-модуль и зависимости (на примере модуля дизайн системы).
👉 Microapps architecture in Swift. SPM basics.
👉 Microapps architecture in Swift. Feature modules.
👍4🔥2
Дайджест недели
Из интересного, на этой недели вышла Android Studio Bumblebee, успели обновиться и словить какие-нибудь багульки? 😁 Еще вышли обновления ряда библиотек Jetpack – Release Notes, а Apple добавила в бета-версию iOS 15.4 настройку Face ID с поддержкой маски и очков.
Android
• Android Studio Bumblebee (2021.1.1) Stable
• Best 15 Android Studio shortcuts and tips to boost your productivity
• Traditional MVVM with Jetpack Compose and StateFlow
• All about Preferences DataStore
• Start with GraphQL in baby steps for Android: Part 1
• Improvement Tip : Loading heavy images while scrolling in a RecyclerView.
• How I use Factory Method Pattern on Android Development
• Импакт-анализ на примере Android-проекта
• Kotlin DSL Basics in Android
• Animations in Jetpack Compose with examples
• Introduction to ConstraintLayout in Compose
• Использование Jetpack Compose в продакшне: первые впечатления
• Jetpack Compose WindowState preview
• Grouping Semantics in Jetpack Compose UI
• Your Deep Links Might Be Broken: Web Intents and Android 12
• GDG Minsk Mobile January Meetup
iOS
• 10 iOS Development Tips for 2022: Swift and Xcode
• Unit tests best practices in Xcode and Swift
• Microapps architecture in Swift
• Swift Coding Standards And Best Practices
• 4 Lesser-Known Swift Features
• 4 Swift Protocols Commonly Used in SwiftUI
• Integrating RxSwift as XCFramework With CocoaPods
• Simple iOS Chat App in 50 Lines of Code
• Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU
• Swift Async Sequence extensions (part 1)
• Swift Async Sequence extensions (part 2)
• iOS Community Meetup #1 | Райффайзен Банк
Кроссплатформа / Разработка
• Force Update — принудительное обновление мобильных приложений
• Deep dive into React Native’s New Architecture
• React Native Component Libraries Every Mobile Developer Should Know
• Как обрабатывать состояния загрузки и ошибки с помощью StateNotifier и AsyncValue во Flutter
• Iconoir – The Definitive Open Source Icons Library
• Flutter: Easily add CI testing with GitHub Actions
• What makes Kotlin different?
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
Из интересного, на этой недели вышла Android Studio Bumblebee, успели обновиться и словить какие-нибудь багульки? 😁 Еще вышли обновления ряда библиотек Jetpack – Release Notes, а Apple добавила в бета-версию iOS 15.4 настройку Face ID с поддержкой маски и очков.
Android
• Android Studio Bumblebee (2021.1.1) Stable
• Best 15 Android Studio shortcuts and tips to boost your productivity
• Traditional MVVM with Jetpack Compose and StateFlow
• All about Preferences DataStore
• Start with GraphQL in baby steps for Android: Part 1
• Improvement Tip : Loading heavy images while scrolling in a RecyclerView.
• How I use Factory Method Pattern on Android Development
• Импакт-анализ на примере Android-проекта
• Kotlin DSL Basics in Android
• Animations in Jetpack Compose with examples
• Introduction to ConstraintLayout in Compose
• Использование Jetpack Compose в продакшне: первые впечатления
• Jetpack Compose WindowState preview
• Grouping Semantics in Jetpack Compose UI
• Your Deep Links Might Be Broken: Web Intents and Android 12
• GDG Minsk Mobile January Meetup
iOS
• 10 iOS Development Tips for 2022: Swift and Xcode
• Unit tests best practices in Xcode and Swift
• Microapps architecture in Swift
• Swift Coding Standards And Best Practices
• 4 Lesser-Known Swift Features
• 4 Swift Protocols Commonly Used in SwiftUI
• Integrating RxSwift as XCFramework With CocoaPods
• Simple iOS Chat App in 50 Lines of Code
• Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU
• Swift Async Sequence extensions (part 1)
• Swift Async Sequence extensions (part 2)
• iOS Community Meetup #1 | Райффайзен Банк
Кроссплатформа / Разработка
• Force Update — принудительное обновление мобильных приложений
• Deep dive into React Native’s New Architecture
• React Native Component Libraries Every Mobile Developer Should Know
• Как обрабатывать состояния загрузки и ошибки с помощью StateNotifier и AsyncValue во Flutter
• Iconoir – The Definitive Open Source Icons Library
• Flutter: Easily add CI testing with GitHub Actions
• What makes Kotlin different?
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
🔥6👍2🤩2
Рекомендации по оптимизации кампаний для привлечения установок
В Директе можно закупать качественный трафик на мобильные приложения и платить конкретно за установки.
У Яндекса вышел небольшой туториал о том, как запускать эффективные мобильные кампании и продвигать приложения более продуктивно. Карточки можно полистать у них в канале Яндекс.Рекламы, где много полезного контента для маркетологов и рекламщиков, в том числе и про рекламу мобильных приложений.
В Директе можно закупать качественный трафик на мобильные приложения и платить конкретно за установки.
У Яндекса вышел небольшой туториал о том, как запускать эффективные мобильные кампании и продвигать приложения более продуктивно. Карточки можно полистать у них в канале Яндекс.Рекламы, где много полезного контента для маркетологов и рекламщиков, в том числе и про рекламу мобильных приложений.
👍9
Настройка GitLab CI/CD
Мы тут на работе переехали на GitLab и как думаете, что нужно будет сделать в ближайшем времени? Правильно, замутить CI/CD. Нагуглил несколько статей с базовыми настройками, оставляю линки на канале.
👉 Официальная документация
👉 A Quick Guide to Setup Gitlab CI/CD for Android
👉 Android GitLab CI setup
👉 Как мы автоматизируем iOS: настройка Gitlab CI + Fastlane + Firebase + ItunesConnect
👉 GitLab CI -Configure a Pipeline for iOS Project
Мы тут на работе переехали на GitLab и как думаете, что нужно будет сделать в ближайшем времени? Правильно, замутить CI/CD. Нагуглил несколько статей с базовыми настройками, оставляю линки на канале.
👉 Официальная документация
👉 A Quick Guide to Setup Gitlab CI/CD for Android
👉 Android GitLab CI setup
👉 Как мы автоматизируем iOS: настройка Gitlab CI + Fastlane + Firebase + ItunesConnect
👉 GitLab CI -Configure a Pipeline for iOS Project
🔥13
Microapps architecture in Swift. Resources and localization.
Новая статья из цикла "Microapps architecture in Swift", про использование ресурсов и локализации между модулями.
Читать (En)
Новая статья из цикла "Microapps architecture in Swift", про использование ресурсов и локализации между модулями.
Читать (En)
👍6
Awesome Android Security
Здоровенный список материалов и ресурсов по Android Security: куча статей, книги, курсы, различные тулзы и прочее. В избранное ✅
Читать (En)
Здоровенный список материалов и ресурсов по Android Security: куча статей, книги, курсы, различные тулзы и прочее. В избранное ✅
Читать (En)
👍11🔥6🤔1
Память в Swift (куча, стек, ARC)
Статья про то, как устроена память в iOS.
– модели управления памятью
– проблемы с памятью (Memory Leak)
– жизненный цикл объекта
– типы ссылок strong, weak, unowned
Оригинал тут: Memory management in Swift(Heap, Stack, ARC)
Читать (Ru)
Статья про то, как устроена память в iOS.
– модели управления памятью
– проблемы с памятью (Memory Leak)
– жизненный цикл объекта
– типы ссылок strong, weak, unowned
Оригинал тут: Memory management in Swift(Heap, Stack, ARC)
Читать (Ru)
👍12
Complete guide to LiveData and Flow: Answering — Why, Where, When, and Which
Про LiveData и Flow, в целом уже дофига материалов, различных статей, но видимо темы актуальные. Вот еще один гайд, в котором подробно рассказывают, что такое LiveData и Flow, рассматриваются различные кейсы с примерами кода.
Читать (En)
Про LiveData и Flow, в целом уже дофига материалов, различных статей, но видимо темы актуальные. Вот еще один гайд, в котором подробно рассказывают, что такое LiveData и Flow, рассматриваются различные кейсы с примерами кода.
Читать (En)
👍13🔥3😁1
Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU
Статья про то, как устроен Render Loop в iOS.
– FPS
– Render Loop
– Проблемы с производительностью
– Оптимизации
Читать (Ru)
Статья про то, как устроен Render Loop в iOS.
– FPS
– Render Loop
– Проблемы с производительностью
– Оптимизации
Читать (Ru)
👍9🔥6
Дайджест недели
Пока Google фиксит баги с эмуляторами после релиза Android Studio Bumblebee, Apple блокирует аккаунты iOS-разработчиков с беларусской регистрацией и удаляет приложения из App Store.
Android
• Awesome Android Security
• Complete guide to LiveData and Flow: Answering — Why, Where, When, and Which
• Navigation in Jetpack Compose using ViewModel state
• Clean Architecture + MVVM
• Build Single Activity Apps With Jetpack Compose
• All about Proto DataStore
• Every Composable deserves a ViewModel
• Accessing App Usage History In Android
• Getting Started with ConstraintLayout in Jetpack Compose
• Firestore Pagination with Realtime Updates — Android
• Improving App Performance with Baseline Profiles
• Tracing main thread messages
• Android 12. Splash Screen API. Делаем анимированный экран загрузки
• VK Tech Talks · Android
iOS
• Microapps architecture in Swift. Resources and localization.
• Память в Swift (куча, стек, ARC)
• Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU
• 4,5 года из жизни iOS-команды в пяти историях и одном техрадаре
• 15 стран, 9 языков: трудности перевода одного iOS-приложения
• Web API Client in Swift
• @EnvironmentObject explained for sharing data between views in SwiftUI
• Tasks in Swift explained with code examples
• SortComparator and SortDenoscriptor
• Backgrounds and overlays in SwiftUI
• Xcode 13.3 Beta Release Notes
• Судебный комитет Сената США одобрил законопроект, позволяющий загружать приложения iOS не из App Store
• Apple блокирует аккаунты разработчиков с беларусской регистрацией
• Apple разрешила выкладывать приложение в App Store с доступом по ссылке
Кроссплатформа / Разработка
• Flutter vs Native: почему мы переходим с первого на второй
• Flutter теперь полноценно поддерживает разработку приложений для Windows
• Рекомендации по оптимизации кампаний для привлечения установок
• Настройка GitLab CI/CD (iOS / Android)
• High performance with idiomatic Kotlin
• Lucilla is an in-memory Full Text Search library for Kotlin
• Testing on Kotlin Multiplatform Mobile and a Strategy to Speed Up Development Time
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
Пока Google фиксит баги с эмуляторами после релиза Android Studio Bumblebee, Apple блокирует аккаунты iOS-разработчиков с беларусской регистрацией и удаляет приложения из App Store.
Android
• Awesome Android Security
• Complete guide to LiveData and Flow: Answering — Why, Where, When, and Which
• Navigation in Jetpack Compose using ViewModel state
• Clean Architecture + MVVM
• Build Single Activity Apps With Jetpack Compose
• All about Proto DataStore
• Every Composable deserves a ViewModel
• Accessing App Usage History In Android
• Getting Started with ConstraintLayout in Jetpack Compose
• Firestore Pagination with Realtime Updates — Android
• Improving App Performance with Baseline Profiles
• Tracing main thread messages
• Android 12. Splash Screen API. Делаем анимированный экран загрузки
• VK Tech Talks · Android
iOS
• Microapps architecture in Swift. Resources and localization.
• Память в Swift (куча, стек, ARC)
• Оптимизация рендера в iOS: frame buffer, Render Server, FPS, CPU vs GPU
• 4,5 года из жизни iOS-команды в пяти историях и одном техрадаре
• 15 стран, 9 языков: трудности перевода одного iOS-приложения
• Web API Client in Swift
• @EnvironmentObject explained for sharing data between views in SwiftUI
• Tasks in Swift explained with code examples
• SortComparator and SortDenoscriptor
• Backgrounds and overlays in SwiftUI
• Xcode 13.3 Beta Release Notes
• Судебный комитет Сената США одобрил законопроект, позволяющий загружать приложения iOS не из App Store
• Apple блокирует аккаунты разработчиков с беларусской регистрацией
• Apple разрешила выкладывать приложение в App Store с доступом по ссылке
Кроссплатформа / Разработка
• Flutter vs Native: почему мы переходим с первого на второй
• Flutter теперь полноценно поддерживает разработку приложений для Windows
• Рекомендации по оптимизации кампаний для привлечения установок
• Настройка GitLab CI/CD (iOS / Android)
• High performance with idiomatic Kotlin
• Lucilla is an in-memory Full Text Search library for Kotlin
• Testing on Kotlin Multiplatform Mobile and a Strategy to Speed Up Development Time
← Previous | Next →
Предложить материал: @artemiygreg
Митапы и конференции: @meetup_today
Подписаться: @mobile_native
Чат: @mobile_native_chat
👍9🔥2👏1
System Design Interview For Mobile Engineers
В последнее время очень много наблюдаю инфы про System Design, часто встречаются вопросы и на собесах. Тема сейчас довольно актуальная.
Вот неплохой список вопросов и тем, для собеседования по System Design в мобилках.
Читать (En)
В последнее время очень много наблюдаю инфы про System Design, часто встречаются вопросы и на собесах. Тема сейчас довольно актуальная.
Вот неплохой список вопросов и тем, для собеседования по System Design в мобилках.
Читать (En)
🔥12👍1
Android RecyclerView — Creating a Custom File Template
Пример того, как с помощью file template быстро создавать базовые файлы/классы. В статье рассматривается кейс с RecyclerView, но применить это можно где угодно.
Читать (En)
Пример того, как с помощью file template быстро создавать базовые файлы/классы. В статье рассматривается кейс с RecyclerView, но применить это можно где угодно.
Читать (En)
👍22🔥8😁1🤔1
Microapps architecture in Swift. Dependency Injection.
Новая часть из цикла "Microapps architecture in Swift", про внедрение зависимостей в фича модулях.
Читать (En)
Новая часть из цикла "Microapps architecture in Swift", про внедрение зависимостей в фича модулях.
Читать (En)
👍4