Подборка открытых проектов, которые заставят вас полюбить Jetpack Compose
1. klokk
Это кинетические часы. Сделаны с использованием Jetpack Compose Desktop. В документации вы можете прочитать о вдохновении проекта и посмотреть процесс разработки. Вы также можете внести свой вклад в проект.
Проект: https://github.com/theapache64/klokk
2. MovieCompose
Это демонстрационное приложение, основанное на современном технологическом стеке Android, которое в основном использует Jetpack Compose UI и Movie DB API. 100% Kotlin, Coroutines, Flow, Hilt, MVVM, паттерн репозитория и т.д. Документация хорошо написана и широко описывает технологический стек.
Проект: https://github.com/skydoves/MovieCompose
3. NewtonsTimer
Проект, подготовленный специально для AndroidDevChallenge. Это приложение Simple Timer, вдохновленное колыбелью Ньютона. В README дается хорошее объяснение мотивации проекта. Автор также проделал хорошую работу, объясняя основные моменты и давая ссылки на код. Очень вдохновляюще!
Проект: https://github.com/MaciejCiemiega/NewtonsTimer
4. Flux
Flux — это красивое погодное приложение, которое показывает, как рисовать динамические пейзажи с несколькими слоями, которые меняются в зависимости от фазы дня. Оно опирается на Jetpack Compose Canvas и поддерживает светлую/темную тему. В целом, это отличный учебный материал!
Проект: https://github.com/fidloo/flux
5. Create Compose App
Это действительно классный инструмент, создающий шаблон приложения для Android, Web, Desktop и Chrome, написанного на Jetpack Compose. Он избавляет вас от трудоемкой установки и настройки.
Созданное приложение поддерживает архитектуру MVVM, Hilt как Dependency Injection Framework, Jetpack Navigation, Logger и типографику Google Sans. В шаблоне для десктопа поддерживается архитектура MVVM со структурой, похожей на Android (SingleActivity), Dagger 2 в качестве фреймворка Dependency Injection, навигация/маршрутизация с Decompose, иконки Launcher (для всех платформ), отдельный модуль данных, модульные и UI-тесты, логирование и шрифт Google Sans. Весьма впечатляюще!
Проект: https://github.com/theapache64/create-compose-app
6. McCompose
Это приложение для McDonald’s, созданное для демонстрации использования Jetpack Compose. Из-за того, что проекту уже 2 года, для его компиляции может потребоваться небольшой рефакторинг. Тем не менее, его стоит посмотреть.
Проект: https://github.com/hitanshu-dhawan/McCompose
7. Schedule Calendar
Это демонстрационный проект, который показывает горизонтальный календарь, показывающий события в хронологическом порядке.
Это не библиотека, а скорее проект для любопытных разработчиков, на что можно посмотреть и поучиться. К сожалению, README не содержит никакой информации.
Проект: https://github.com/halilozercan/compose-schedule-calendar
8. Wiggles
Еще одно приложение, подготовленное для Android Dev Challenge. Это приложение для усыновления собаки, реализованное с помощью Android Architecture Components, Compose Navigation и Material Components.
Хотя документация не очень полная, код достаточно понятен.
Проект: https://github.com/Spikeysanju/Wiggles
9. Roffu
Проект представляет собой интернет-магазин, специализирующийся на спортивной обуви от многих известных компаний с современным пользовательским интерфейсом и красивой анимацией
Проект: https://github.com/mustfaibra/RoFFu
10. ViMusic
С помощью этого приложения с открытым исходным кодом для Android можно стримить музыку с YouTube Music.
Проект: https://github.com/vfsfitvnm/ViMusic
#Android
👉 @developer_mobila
1. klokk
Это кинетические часы. Сделаны с использованием Jetpack Compose Desktop. В документации вы можете прочитать о вдохновении проекта и посмотреть процесс разработки. Вы также можете внести свой вклад в проект.
Проект: https://github.com/theapache64/klokk
2. MovieCompose
Это демонстрационное приложение, основанное на современном технологическом стеке Android, которое в основном использует Jetpack Compose UI и Movie DB API. 100% Kotlin, Coroutines, Flow, Hilt, MVVM, паттерн репозитория и т.д. Документация хорошо написана и широко описывает технологический стек.
Проект: https://github.com/skydoves/MovieCompose
3. NewtonsTimer
Проект, подготовленный специально для AndroidDevChallenge. Это приложение Simple Timer, вдохновленное колыбелью Ньютона. В README дается хорошее объяснение мотивации проекта. Автор также проделал хорошую работу, объясняя основные моменты и давая ссылки на код. Очень вдохновляюще!
Проект: https://github.com/MaciejCiemiega/NewtonsTimer
4. Flux
Flux — это красивое погодное приложение, которое показывает, как рисовать динамические пейзажи с несколькими слоями, которые меняются в зависимости от фазы дня. Оно опирается на Jetpack Compose Canvas и поддерживает светлую/темную тему. В целом, это отличный учебный материал!
Проект: https://github.com/fidloo/flux
5. Create Compose App
Это действительно классный инструмент, создающий шаблон приложения для Android, Web, Desktop и Chrome, написанного на Jetpack Compose. Он избавляет вас от трудоемкой установки и настройки.
Созданное приложение поддерживает архитектуру MVVM, Hilt как Dependency Injection Framework, Jetpack Navigation, Logger и типографику Google Sans. В шаблоне для десктопа поддерживается архитектура MVVM со структурой, похожей на Android (SingleActivity), Dagger 2 в качестве фреймворка Dependency Injection, навигация/маршрутизация с Decompose, иконки Launcher (для всех платформ), отдельный модуль данных, модульные и UI-тесты, логирование и шрифт Google Sans. Весьма впечатляюще!
Проект: https://github.com/theapache64/create-compose-app
6. McCompose
Это приложение для McDonald’s, созданное для демонстрации использования Jetpack Compose. Из-за того, что проекту уже 2 года, для его компиляции может потребоваться небольшой рефакторинг. Тем не менее, его стоит посмотреть.
Проект: https://github.com/hitanshu-dhawan/McCompose
7. Schedule Calendar
Это демонстрационный проект, который показывает горизонтальный календарь, показывающий события в хронологическом порядке.
Это не библиотека, а скорее проект для любопытных разработчиков, на что можно посмотреть и поучиться. К сожалению, README не содержит никакой информации.
Проект: https://github.com/halilozercan/compose-schedule-calendar
8. Wiggles
Еще одно приложение, подготовленное для Android Dev Challenge. Это приложение для усыновления собаки, реализованное с помощью Android Architecture Components, Compose Navigation и Material Components.
Хотя документация не очень полная, код достаточно понятен.
Проект: https://github.com/Spikeysanju/Wiggles
9. Roffu
Проект представляет собой интернет-магазин, специализирующийся на спортивной обуви от многих известных компаний с современным пользовательским интерфейсом и красивой анимацией
Проект: https://github.com/mustfaibra/RoFFu
10. ViMusic
С помощью этого приложения с открытым исходным кодом для Android можно стримить музыку с YouTube Music.
Проект: https://github.com/vfsfitvnm/ViMusic
#Android
👉 @developer_mobila
👍2🔥1
Downloading fonts on iOS
Оказывается, помимо шрифтов, поставляемых вместе с платформами Apple, можно загружать множество шрифтов во время выполнения программы. Есть список, который Apple сделала доступным, его можно найти здесь https://developer.apple.com/fonts/system-fonts/.
Как же загрузить эти шрифты? Это не так тривиально, как могло бы быть. Приходится окунаться в CoreText. Но никто не жалуется, это прекрасный C API, который работает на всех платформах Apple, и вы даже можете легко смешивать его с другими кроссплатформенными проектами.
https://whackylabs.com/ios/fonts/2023/05/15/download-fonts-ios/
#ios
👉 @developer_mobila
Оказывается, помимо шрифтов, поставляемых вместе с платформами Apple, можно загружать множество шрифтов во время выполнения программы. Есть список, который Apple сделала доступным, его можно найти здесь https://developer.apple.com/fonts/system-fonts/.
Как же загрузить эти шрифты? Это не так тривиально, как могло бы быть. Приходится окунаться в CoreText. Но никто не жалуется, это прекрасный C API, который работает на всех платформах Apple, и вы даже можете легко смешивать его с другими кроссплатформенными проектами.
https://whackylabs.com/ios/fonts/2023/05/15/download-fonts-ios/
#ios
👉 @developer_mobila
Apple
System Fonts - Fonts - Apple Developer
Apple platforms come with many preinstalled fonts that can be used by your app’s user interface. Additional fonts are available for download on each platform or through document-based apps.
👍1
🚀 Зачем нужны ViewModels
В сегодняшнем уроке мы расскажем все, что вам нужно знать о ViewModels в Jetpack Compose. Что это такое, зачем они нужны и почему не нужны. ViewModels популярны в мире Android. А что если вы хотите использовать их не только в Android? Какие есть альтернативы?
https://www.composables.com/tutorials/viewmodels-in-jetpack-compose
#Android
👉 @developer_mobila
В сегодняшнем уроке мы расскажем все, что вам нужно знать о ViewModels в Jetpack Compose. Что это такое, зачем они нужны и почему не нужны. ViewModels популярны в мире Android. А что если вы хотите использовать их не только в Android? Какие есть альтернативы?
https://www.composables.com/tutorials/viewmodels-in-jetpack-compose
#Android
👉 @developer_mobila
👍3
Mock Generator Development With Using Mockolo Library
https://medium.com/trendyol-tech/mock-generator-development-with-using-mockolo-library-c8c273f77d1b
#ios
👉 @developer_mobila
https://medium.com/trendyol-tech/mock-generator-development-with-using-mockolo-library-c8c273f77d1b
#ios
👉 @developer_mobila
👍1
Gradle Review Show, LIVE.
Гость: ведущий эксперт в области градловедения, разработчик из JetBrains и просто отличный парень — Константин Цховребов!
https://www.youtube.com/watch?v=YVz1ZuNR1rQ
#Android
👉 @developer_mobila
Гость: ведущий эксперт в области градловедения, разработчик из JetBrains и просто отличный парень — Константин Цховребов!
https://www.youtube.com/watch?v=YVz1ZuNR1rQ
#Android
👉 @developer_mobila
YouTube
Gradle Review Show, LIVE. 12/05/2023
Поддержать качество стрима
https://www.donationalerts.com/r/mobiledeveloper
The boys are back! Мы соберемся с вами еще раз, чтобы посмотреть интересные вещи в Gradle и поотвечать на какие-то вопросы. Поэтому готовьтесь заранее и ставьте колокольчик, чтобы…
https://www.donationalerts.com/r/mobiledeveloper
The boys are back! Мы соберемся с вами еще раз, чтобы посмотреть интересные вещи в Gradle и поотвечать на какие-то вопросы. Поэтому готовьтесь заранее и ставьте колокольчик, чтобы…
Forwarded from GitHub Сообщество
30DaysofSwift
Самостоятельный проект по изучению языка Swift.
Этот проект был полностью вдохновлен проектом Сэма Лу "100 дней Swift", после прочтения его сообщения на Medium я принял решение посвятить каждый свой день написанию Swift, это финальный код 30 маленьких Swift-проектов.
https://github.com/allenwong/30DaysofSwift
👉 @Githublib
Самостоятельный проект по изучению языка Swift.
Этот проект был полностью вдохновлен проектом Сэма Лу "100 дней Swift", после прочтения его сообщения на Medium я принял решение посвятить каждый свой день написанию Swift, это финальный код 30 маленьких Swift-проектов.
https://github.com/allenwong/30DaysofSwift
👉 @Githublib
👍3
Measuring Ping in iOS Apps: A Simple Solution
Сегодня я хочу поделиться с вами простым способом измерения пинга до выбранного сервера в iOS-приложении. Этот код отображает фактический пинг до сервера.
https://medium.com/@onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3
#ios
👉 @developer_mobila
Сегодня я хочу поделиться с вами простым способом измерения пинга до выбранного сервера в iOS-приложении. Этот код отображает фактический пинг до сервера.
https://medium.com/@onlyapps/measuring-ping-in-ios-apps-a-simple-solution-13be82a15bf3
#ios
👉 @developer_mobila
👍2
Stable vs Immutable и анимации на Compose
Какую анимацию выбрать: Composable или Suspend? Возможна ли анимация за 0 рекомпозиций? А что будет, если «обмануть» Compose и поставить Immutable на мутабельное значение? Об этом и многом другом рассказал Android-разработчик red_mad_robot Серёжа Чумиков.
00:00 Везде ли ставить Immutable
04:27 Immmutable vs Stable - что выбрать?
07:36 Передача примитивов vs целых объектов
08:28 Stable для параметров composable функций
09:24 Анимация на Compose
10:22 Composable-анимации
18:16 Suspend-анимации
21:14 Бесконечная анимация
25:20 Вопросы
https://www.youtube.com/watch?v=kcYa9xg8WAE
#Android
👉 @developer_mobila
Какую анимацию выбрать: Composable или Suspend? Возможна ли анимация за 0 рекомпозиций? А что будет, если «обмануть» Compose и поставить Immutable на мутабельное значение? Об этом и многом другом рассказал Android-разработчик red_mad_robot Серёжа Чумиков.
00:00 Везде ли ставить Immutable
04:27 Immmutable vs Stable - что выбрать?
07:36 Передача примитивов vs целых объектов
08:28 Stable для параметров composable функций
09:24 Анимация на Compose
10:22 Composable-анимации
18:16 Suspend-анимации
21:14 Бесконечная анимация
25:20 Вопросы
https://www.youtube.com/watch?v=kcYa9xg8WAE
#Android
👉 @developer_mobila
Как увеличить время сборки iOS с помощью модуляризации
Большинство мобильных команд понимают и ценят преимущества быстрой сборки. Возможность быстро компилировать и тестировать код означает ускорение разработки и итераций, что, в свою очередь, позволяет команде более регулярно и эффективно осуществлять поставки. Однако реальное достижение быстрого времени сборки и реализация долгосрочного решения, позволяющего поддерживать скорость сборки по мере роста кодовой базы, может оказаться сложной задачей. Существует целый ряд различных тактик, и если некоторые из них относительно просты - например, уменьшение размера поставляемых ресурсов, - то другие могут быть гораздо более сложными и даже опасными (например, сомнительные трюки с компилятором)!
https://www.runway.team/blog/how-to-improve-ios-build-times-with-modularization
#ios
👉 @developer_mobila
Большинство мобильных команд понимают и ценят преимущества быстрой сборки. Возможность быстро компилировать и тестировать код означает ускорение разработки и итераций, что, в свою очередь, позволяет команде более регулярно и эффективно осуществлять поставки. Однако реальное достижение быстрого времени сборки и реализация долгосрочного решения, позволяющего поддерживать скорость сборки по мере роста кодовой базы, может оказаться сложной задачей. Существует целый ряд различных тактик, и если некоторые из них относительно просты - например, уменьшение размера поставляемых ресурсов, - то другие могут быть гораздо более сложными и даже опасными (например, сомнительные трюки с компилятором)!
https://www.runway.team/blog/how-to-improve-ios-build-times-with-modularization
#ios
👉 @developer_mobila
🤔2
Android, MVVM with Clean Code
https://medium.com/@nicola.caferra/android-mvvm-with-clean-code-63995578253e
#Android
👉 @developer_mobila
https://medium.com/@nicola.caferra/android-mvvm-with-clean-code-63995578253e
#Android
👉 @developer_mobila
A complete failure of MVVM+C in SwiftUI
Как обычно, я собираюсь разглагольствовать на эту тему. По крайней мере, это должно дать вам возможность взглянуть на ситуацию с другой стороны, вне рамок MVVM.
Давайте оценим этот культовый дизайн MVVM+C:
#ios
👉 @developer_mobila
Как обычно, я собираюсь разглагольствовать на эту тему. По крайней мере, это должно дать вам возможность взглянуть на ситуацию с другой стороны, вне рамок MVVM.
Давайте оценим этот культовый дизайн MVVM+C:
final class UserFlowCoordinator: ObservableObject, Hashable {
// ...
private func usersListView() -> some View { // create a view
let viewModel = UsersListViewModel()
let usersListView = UsersListView(viewModel: viewModel)
bind(view: usersListView)
return usersListView
}
// ...
}
https://swift2931.medium.com/a-complete-failure-of-mvvm-c-in-swiftui-e62bdf20057c#ios
👉 @developer_mobila
This media is not supported in your browser
VIEW IN TELEGRAM
Picture in Picture Mode в android. Показываем видео в мини-окне
https://habr.com/ru/articles/734890/
#Android
👉 @developer_mobila
https://habr.com/ru/articles/734890/
#Android
👉 @developer_mobila
👍1
Как сделать свой сервер мобильному разработчику, если он никогда такого не делал?
У меня ушел один месяц на создание сервера. Две недели ушло на понимание функционала и сборку прототипа. Одну неделю я писал Ktor-сервер на Kotlin и визуал в приложении на Flutter. И еще одну неделю тестировал. И я хочу, чтобы вы сэкономили две недели, когда решите создать ваш бэкэнд.
Зачем мне свой сервер?
Два месяца назад я писал статью, о том что делаю приложение для изучения английских слов нейрокартинками «Как запомнить что-нибудь навсегда?» и она вас заинтересовала. Для приложения мне понадобился бэкэнд. Стало нужно уметь сохранять прогресс аккаунтов, отправлять пуши и на перспективу уметь делать обмен статистикой, достижения и соревнования. Нужно было выбрать как это сделать.
А чего не Firebase?
Я люблю Firebase, он удобный, хорошо-известный и масштабируемый. Но он не контролируется, его стало сложнее оплачивать из РФ, гипотетически его могут отключить совсем и если делать что-то сложнее удаленного хранилища он не подходит, а что-то не может.
https://habr.com/ru/articles/764790/
#Android
👉 @developer_mobila
У меня ушел один месяц на создание сервера. Две недели ушло на понимание функционала и сборку прототипа. Одну неделю я писал Ktor-сервер на Kotlin и визуал в приложении на Flutter. И еще одну неделю тестировал. И я хочу, чтобы вы сэкономили две недели, когда решите создать ваш бэкэнд.
Зачем мне свой сервер?
Два месяца назад я писал статью, о том что делаю приложение для изучения английских слов нейрокартинками «Как запомнить что-нибудь навсегда?» и она вас заинтересовала. Для приложения мне понадобился бэкэнд. Стало нужно уметь сохранять прогресс аккаунтов, отправлять пуши и на перспективу уметь делать обмен статистикой, достижения и соревнования. Нужно было выбрать как это сделать.
А чего не Firebase?
Я люблю Firebase, он удобный, хорошо-известный и масштабируемый. Но он не контролируется, его стало сложнее оплачивать из РФ, гипотетически его могут отключить совсем и если делать что-то сложнее удаленного хранилища он не подходит, а что-то не может.
https://habr.com/ru/articles/764790/
#Android
👉 @developer_mobila
👍2
Handling Android Permissions in Repository
В настоящее время существует два предпочтительных подхода к построению архитектуры Android. Первый - это Google Android Architecture, а второй - Clean Architecture.
Важнейшей частью архитектуры является слой данных, который включает в себя репозитории, предоставляющие данные остальным частям приложения. Репозитории содержат логику получения данных, например, получение текущего местоположения, получение данных с других устройств через Bluetooth и т.д. Однако начиная с Android 6 все стало сложнее. Было введено усовершенствование системы безопасности, предполагающее мелкозернистый контроль доступа, требующий запрашивать разрешения пользователя на доступ к важной информации или функциям. Этот механизм неудобен, так как предполагает запрос разрешений на уровне представления, через Activities или Fragments, а затем получение данных из хранилищ, что приводит к разбросу логики по разным уровням.
https://medium.com/@vuert/handling-android-permissions-in-repository-9c062b4ea85e
#Android
👉 @developer_mobila
В настоящее время существует два предпочтительных подхода к построению архитектуры Android. Первый - это Google Android Architecture, а второй - Clean Architecture.
Важнейшей частью архитектуры является слой данных, который включает в себя репозитории, предоставляющие данные остальным частям приложения. Репозитории содержат логику получения данных, например, получение текущего местоположения, получение данных с других устройств через Bluetooth и т.д. Однако начиная с Android 6 все стало сложнее. Было введено усовершенствование системы безопасности, предполагающее мелкозернистый контроль доступа, требующий запрашивать разрешения пользователя на доступ к важной информации или функциям. Этот механизм неудобен, так как предполагает запрос разрешений на уровне представления, через Activities или Fragments, а затем получение данных из хранилищ, что приводит к разбросу логики по разным уровням.
https://medium.com/@vuert/handling-android-permissions-in-repository-9c062b4ea85e
#Android
👉 @developer_mobila
👍2
Purr: просмотр и поиск в логах на Android
Purr — это инструмент командной строки zsh для просмотра и поиска в логах Android. Он использует fzf для обеспечения простого, но мощного пользовательского интерфейса, возможностей нечеткого поиска и многого другого.
Хотя logcat в Android Studio достаточен для большинства приложений, он ломается в таких ситуациях, как доступ только через терминал или когда требуется быстрый доступ к нескольким устройствам. При выполнении разработки на самой операционной системе Android разработчики возвращаются к использованию сырого adb logcat в shell.
Это неоптимально и уходит много времени на написание grep-запросов и копание в сплошном нефильтрованном сером тексте с плохим пользовательским опытом. Purr предназначен для решения этой проблемы — это мощная программа просмотра логов, работающая полностью в shell, способная быстро просматривать миллионы логов.
https://github.com/google/purr
#Android
👉 @developer_mobila
Purr — это инструмент командной строки zsh для просмотра и поиска в логах Android. Он использует fzf для обеспечения простого, но мощного пользовательского интерфейса, возможностей нечеткого поиска и многого другого.
Хотя logcat в Android Studio достаточен для большинства приложений, он ломается в таких ситуациях, как доступ только через терминал или когда требуется быстрый доступ к нескольким устройствам. При выполнении разработки на самой операционной системе Android разработчики возвращаются к использованию сырого adb logcat в shell.
Это неоптимально и уходит много времени на написание grep-запросов и копание в сплошном нефильтрованном сером тексте с плохим пользовательским опытом. Purr предназначен для решения этой проблемы — это мощная программа просмотра логов, работающая полностью в shell, способная быстро просматривать миллионы логов.
https://github.com/google/purr
#Android
👉 @developer_mobila
👍2
Измерение задержки старта iOS-приложений в масштабе Uber
Изменив архитектуру измерения задержки запуска, мы можем более надежно измерять эту метрику в мире предварительного прогрева.
В Uber мы одержимы идеей обеспечения высокой производительности и надежности для наших партнеров и клиентов. Мы относимся к снижению производительности приложения так же, как и к любым другим функциональным регрессиям.
Прежде чем вкладывать усилия в повышение производительности и надежности, мы должны понять, как работает наше приложение в реальных условиях. Мы используем различные инструменты для получения показателей, которые позволяют нам измерить производительность и надежность приложения. Мы также устанавливаем базовые показатели, чтобы гарантировать, что разработка новых функций будет соответствовать высокой планке производительности и надежности.
https://www.uber.com/en-LB/blog/measuring-performance-for-ios-apps-at-uber-scale/
#ios
👉 @developer_mobila
Изменив архитектуру измерения задержки запуска, мы можем более надежно измерять эту метрику в мире предварительного прогрева.
В Uber мы одержимы идеей обеспечения высокой производительности и надежности для наших партнеров и клиентов. Мы относимся к снижению производительности приложения так же, как и к любым другим функциональным регрессиям.
Прежде чем вкладывать усилия в повышение производительности и надежности, мы должны понять, как работает наше приложение в реальных условиях. Мы используем различные инструменты для получения показателей, которые позволяют нам измерить производительность и надежность приложения. Мы также устанавливаем базовые показатели, чтобы гарантировать, что разработка новых функций будет соответствовать высокой планке производительности и надежности.
https://www.uber.com/en-LB/blog/measuring-performance-for-ios-apps-at-uber-scale/
#ios
👉 @developer_mobila
👍1
12 ошибок при публикации приложения в RuStore — и как их избежать
Разработка приложения — трудоёмкий процесс, который требует множества усилий и времени. Но, как только заканчивается кодинг, необходимо опубликовать созданный продукт на цифровой витрине, чтобы пользователи могли его скачать и использовать. В статье рассмотрим 12 наиболее распространённых ошибок, которые допускают разработчики при публикации приложений в RuStore.
https://habr.com/ru/companies/vk/articles/737864/
#Android
👉 @developer_mobila
Разработка приложения — трудоёмкий процесс, который требует множества усилий и времени. Но, как только заканчивается кодинг, необходимо опубликовать созданный продукт на цифровой витрине, чтобы пользователи могли его скачать и использовать. В статье рассмотрим 12 наиболее распространённых ошибок, которые допускают разработчики при публикации приложений в RuStore.
https://habr.com/ru/companies/vk/articles/737864/
#Android
👉 @developer_mobila
👍2
О многообразии форм однонаправленных архитектур в Swift
Как SwiftUI и async/await изменили концепцию контейнеров состояний за последние шесть лет
Я уже писал о концепции “контейнеров состояний” в 2017 году. Шесть лет спустя мне все еще нравится строить на их основе большинство своих приложений, используя эту концепцию для двух главных слоев внутри моих приложений:
Слой представления: модель представления — это «контейнер состояния представления» (view state container), моделирующий состояние представления и бизнес-логику.
Доменный слой: обычно агрегирует корневые модели (или репозитории/сервисы данных), представляющие бизнес-правила и сохраняющие целостность и согласованность в рамках определенного ограниченного контекста (или сущности) в приложении.
Однако с 2017 года многое изменилось. В 2019 году Apple представила миру SwiftUI. И два года спустя появился async/await. Хоть мы и склонны думать, что хорошие архитектуры не должны зависеть от специфик фреймворков, хорошие архитектуры все-таки являются лояльными гражданами тех же самых фреймворков и общей экосистемы. Так… как же SwiftUI и async/await изменили концепцию контейнеров состояний за последние шесть лет? Давайте посмотрим.
https://jobandtalent.engineering/ios-architecture-an-state-container-based-approach-4f1a9b00b82e
#ios
👉 @developer_mobila
Как SwiftUI и async/await изменили концепцию контейнеров состояний за последние шесть лет
Я уже писал о концепции “контейнеров состояний” в 2017 году. Шесть лет спустя мне все еще нравится строить на их основе большинство своих приложений, используя эту концепцию для двух главных слоев внутри моих приложений:
Слой представления: модель представления — это «контейнер состояния представления» (view state container), моделирующий состояние представления и бизнес-логику.
Доменный слой: обычно агрегирует корневые модели (или репозитории/сервисы данных), представляющие бизнес-правила и сохраняющие целостность и согласованность в рамках определенного ограниченного контекста (или сущности) в приложении.
Однако с 2017 года многое изменилось. В 2019 году Apple представила миру SwiftUI. И два года спустя появился async/await. Хоть мы и склонны думать, что хорошие архитектуры не должны зависеть от специфик фреймворков, хорошие архитектуры все-таки являются лояльными гражданами тех же самых фреймворков и общей экосистемы. Так… как же SwiftUI и async/await изменили концепцию контейнеров состояний за последние шесть лет? Давайте посмотрим.
https://jobandtalent.engineering/ios-architecture-an-state-container-based-approach-4f1a9b00b82e
#ios
👉 @developer_mobila
Medium
iOS Architecture: A State Container based approach
iOS Architecture: A State Container based approach This article is the first in a three-part series. You can find the second one here and the third, and final one here. A warning about architecture …
👍2
Media is too big
VIEW IN TELEGRAM
Ускоряем написание кода
Делюсь популярными утилитами и фичами IDE, которые вы можете использовать, чтобы писать меньше кода == меньше багов
0:00 Вступление
0:44 Annotation Processing
2:46 Kotlin Symbol Processing
4:09 AvitoTech
4:37 Генерация кода из Gradle
5:08 Плагины Kotlin компилятора
6:20 Возможности IDE
7:50 Плагины IDE
8:43 Шаблоны Android Studio
9:18 Geminio
11:13 AI помощники
14:00 Заключение
источник
#Android
👉 @developer_mobila
Делюсь популярными утилитами и фичами IDE, которые вы можете использовать, чтобы писать меньше кода == меньше багов
0:00 Вступление
0:44 Annotation Processing
2:46 Kotlin Symbol Processing
4:09 AvitoTech
4:37 Генерация кода из Gradle
5:08 Плагины Kotlin компилятора
6:20 Возможности IDE
7:50 Плагины IDE
8:43 Шаблоны Android Studio
9:18 Geminio
11:13 AI помощники
14:00 Заключение
источник
#Android
👉 @developer_mobila
Как не писать сетевой слой в Android-приложениях с помощью автоматической генерации OpenAPI
Разрабатываемые приложения со временем имеют свойство увеличиваться и обрастать новой функциональностью. Как правило, сетевой слой при этом также разрастается, порой до немыслимых размеров. Поддерживать все это руками в какой-то момент становится довольно сложно. Мы отлично прочувствовали на себе все «прелести» такого подхода и в определенный момент решили обратить взор на возможности автоматической генерации. Поиски увенчались успехом, и теперь при разработке мы не пишем ни строчки сетевого кода сами.
Я Сергей Шевцов, Android-разработчик в компании KODE. В статье расскажу, как мы работаем с сетевым слоем в наших приложениях. Возможно, это поможет вам сэкономить многие часы написания сетевого кода.
https://habr.com/ru/articles/737010/
#Android
👉 @developer_mobila
Разрабатываемые приложения со временем имеют свойство увеличиваться и обрастать новой функциональностью. Как правило, сетевой слой при этом также разрастается, порой до немыслимых размеров. Поддерживать все это руками в какой-то момент становится довольно сложно. Мы отлично прочувствовали на себе все «прелести» такого подхода и в определенный момент решили обратить взор на возможности автоматической генерации. Поиски увенчались успехом, и теперь при разработке мы не пишем ни строчки сетевого кода сами.
Я Сергей Шевцов, Android-разработчик в компании KODE. В статье расскажу, как мы работаем с сетевым слоем в наших приложениях. Возможно, это поможет вам сэкономить многие часы написания сетевого кода.
https://habr.com/ru/articles/737010/
#Android
👉 @developer_mobila
👍2
Android 14: что появилось нового и что изменилось? Возможности новой версии мобильной ОС
Несколько дней назад появилась новость о выходе новой версии мобильной операционной системы Android 14. На данный момент исходники прошивки готовы для серии смартфонов Pixel, а чуть позже выйдут обновления для Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, realme, Sharp, Sony, Tecno, vivo и Xiaomi. Кроме того, готовы и универсальные сборки для разных устройств на базе архитектур ARM64 и x86_64. Давайте внимательно посмотрим на улучшения и дополнения, которые появились в новой версии.
https://habr.com/ru/companies/ru_mts/articles/766792/
#Android
👉 @developer_mobila
Несколько дней назад появилась новость о выходе новой версии мобильной операционной системы Android 14. На данный момент исходники прошивки готовы для серии смартфонов Pixel, а чуть позже выйдут обновления для Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, realme, Sharp, Sony, Tecno, vivo и Xiaomi. Кроме того, готовы и универсальные сборки для разных устройств на базе архитектур ARM64 и x86_64. Давайте внимательно посмотрим на улучшения и дополнения, которые появились в новой версии.
https://habr.com/ru/companies/ru_mts/articles/766792/
#Android
👉 @developer_mobila
👍3