🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Flutter VS React Native
— Стоит ли разработчику идти на завод, как запустить стартап, но вовремя остановиться и другие истории реальных айтишников
— «Клиентов нужно не искать, а создавать»: погружение в Telegram API через TDLib
— Kotlin Multiplatform перешёл в stable. Что это значит?
— Можно ли обойтись без нативных языков, разрабатывая на Flutter и RN?
— Как сделать тесты на Espresso более читабельными и стабильными
— Как создать интерактивные виджеты на iOS 17
— Байт-код — это просто! Как сделать DI по-настоящему быстрым
— Flutter. Локальная база данных
— Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
— How to Test Native Features in Flutter Apps with Patrol and Codemagic
— Custom queries AndroidManifest Pada Expo
— Tech Stacks used for Android Development
— 💰Boost your game/app earnings 📱
— Unveiling the Proven Strategies for Robust React Native Development
— Mobile development
— Aumente as Conversões na Black Friday: Estratégia ASO & Ícone Dinâmico no React Native
— Moinuddin9777 | Contributor
— How to Publish Your Android Mobile App on Google Play Store
— Secrets to Build a Million-Dollar App: Start Your Mobile App Journey NOW!
Посмотреть:
🌐 Собеседование с Михаилом Левченко (⏱ 01:46:27)
🌐 Верста На UIKit. Страница Авторизации. Стрим #0 (⏱ 01:56:50)
🌐 Мои приложения за 2 года разработки. Обзор и делюсь полезными советами (⏱ 23:41)
Хорошего дня!
Почитать:
— Flutter VS React Native
— Стоит ли разработчику идти на завод, как запустить стартап, но вовремя остановиться и другие истории реальных айтишников
— «Клиентов нужно не искать, а создавать»: погружение в Telegram API через TDLib
— Kotlin Multiplatform перешёл в stable. Что это значит?
— Можно ли обойтись без нативных языков, разрабатывая на Flutter и RN?
— Как сделать тесты на Espresso более читабельными и стабильными
— Как создать интерактивные виджеты на iOS 17
— Байт-код — это просто! Как сделать DI по-настоящему быстрым
— Flutter. Локальная база данных
— Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
— How to Test Native Features in Flutter Apps with Patrol and Codemagic
— Custom queries AndroidManifest Pada Expo
— Tech Stacks used for Android Development
— 💰Boost your game/app earnings 📱
— Unveiling the Proven Strategies for Robust React Native Development
— Mobile development
— Aumente as Conversões na Black Friday: Estratégia ASO & Ícone Dinâmico no React Native
— Moinuddin9777 | Contributor
— How to Publish Your Android Mobile App on Google Play Store
— Secrets to Build a Million-Dollar App: Start Your Mobile App Journey NOW!
Посмотреть:
🌐 Собеседование с Михаилом Левченко (⏱ 01:46:27)
🌐 Верста На UIKit. Страница Авторизации. Стрим #0 (⏱ 01:56:50)
🌐 Мои приложения за 2 года разработки. Обзор и делюсь полезными советами (⏱ 23:41)
Хорошего дня!
👏4
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Flutter 3.16: что нового
— Как сделать автотесты гибкими и лаконичными
— Анимация загрузки картинок во Flutter, или как сделать shimmer своими руками
— Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости
— Разделение презентационного слоя фичи на модули в Android приложении
— Листаем цифровые страницы: UIPageViewController
— Мобильные суперприложения выгодны корпорациям, но это кошмар для простых людей
— Простой, но масштабируемый State Management для Flutter
— Как подружить JUnit 5 и Robolectric?
— Исследование со взломом. Часть 1
— Can Humane’s AI Pin Revolutionize The World Of Wearables?
— Pranshu Singh
— How Grocery Stores Are Benefiting from Mobile Apps🎉
— How to Add Content Descriptions in Compose - A Guide for Android Devs
— Elevating Your Mobile App Dreams: Expert React Native Development for iOS and Android
— Core Data with Table Views Part II
— Exploring the Power of Shared Preferences in Flutter Development.
— Popular Apps Created Using React Native
— Core Data with Table Views Part I
— Hire The Best UI/UX Services Company
Посмотреть:
🌐 Как устроен Android в умных колонках Яндекса (⏱ 01:44:50)
Хорошего дня!
Почитать:
— Flutter 3.16: что нового
— Как сделать автотесты гибкими и лаконичными
— Анимация загрузки картинок во Flutter, или как сделать shimmer своими руками
— Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости
— Разделение презентационного слоя фичи на модули в Android приложении
— Листаем цифровые страницы: UIPageViewController
— Мобильные суперприложения выгодны корпорациям, но это кошмар для простых людей
— Простой, но масштабируемый State Management для Flutter
— Как подружить JUnit 5 и Robolectric?
— Исследование со взломом. Часть 1
— Can Humane’s AI Pin Revolutionize The World Of Wearables?
— Pranshu Singh
— How Grocery Stores Are Benefiting from Mobile Apps🎉
— How to Add Content Descriptions in Compose - A Guide for Android Devs
— Elevating Your Mobile App Dreams: Expert React Native Development for iOS and Android
— Core Data with Table Views Part II
— Exploring the Power of Shared Preferences in Flutter Development.
— Popular Apps Created Using React Native
— Core Data with Table Views Part I
— Hire The Best UI/UX Services Company
Посмотреть:
🌐 Как устроен Android в умных колонках Яндекса (⏱ 01:44:50)
Хорошего дня!
👍3❤1🔥1🎉1
Forwarded from Android разработка
Рассмотрим 10 экспертных рекомендаций по использованию Flutter, которые помогут разработчикам усовершенствовать свои навыки и создавать еще более качественные мобильные приложения в 2023 году.
1. Горячая перезагрузка
Максимально используйте во Flutter функцию Hot Reload (горячая перезагрузка). Эта функция позволяет ускорить цикл разработки и сэкономить значительное количество времени при работе над новыми проектами.
2. Стабильный канал Flutter
Чтобы воспользоваться преимуществами последних стабильных функций и исправлений, убедитесь в том, что подключены к стабильному каналу Flutter.
3. Организация исходного кода
Организация кода во Flutter играет ключевую роль в обеспечении производительности, эффективности и сопровождаемости.
4. Генераторы кода
Генераторы кода Flutter позволяют упростить написание и сопровождение кода.
5. Dart DevTools
Dart DevTools — это надежный набор инструментов для отладки и оптимизации производительности на Flutter.
6. Виджеты Flutter с поддержкой жестов
Flutter включает широкий набор виджетов, позволяющих создавать привлекательные и отзывчивые пользовательские интерфейсы.
7. Отзывчивый дизайн
Отзывчивый дизайн во Flutter необходим для создания пользовательских интерфейсов (UI), адаптивных к различным размерам и ориентациям экрана. Для этого Flutter предоставляет такие инструменты, как LayoutBuilder и MediaQuery.
8. Анимированные виджеты
Анимированные виджеты Flutter позволяют разработчикам включать в мобильные приложения анимацию, повышая общий уровень взаимодействия пользователя с приложением.
9. Макеты Flutter
С помощью макетов Flutter можно создавать несколько видов макетов приложений — от простых до сложных.
10. Android Studio
Android Studio для работы с Flutter предлагает множество эффективных расширений, позволяющих сэкономить время разработчиков и повысить производительность. Это интегрированная среда разработки (IDE), которая предоставляет программистам доступ к широкому набору инструментов, повышающих уровень комфорта при создании сложных приложений.
📌 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Школа мобильной разработки: Android
1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI
#video #android
https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97
1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI
#video #android
https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97
🔥6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Реализация параллакс-карусели из SwiftUI в Jetpack Compose
В рамках повседневной деятельности я часто изучаю последние разработки на таких платформах, как X и Medium. Однажды утром, пролистывая X, наткнулся на GitHub-репозиторий, созданный
Этот проект, размещенный на
Ее визуальная привлекательность и удобство использования просто завораживали.
Читать
В рамках повседневной деятельности я часто изучаю последние разработки на таких платформах, как X и Medium. Однажды утром, пролистывая X, наткнулся на GitHub-репозиторий, созданный
KavSoft
и сразу же привлекший мое внимание.Этот проект, размещенный на
KavSoft-Tutorials-iOS
, представлял собой потрясающую параллакс-карусель. Ее визуальная привлекательность и удобство использования просто завораживали.
Читать
👍6🔥5
🚦 Google вводит новые правила проверки приложений в Play
Google ввела новые правила для проверки приложений в Google Play, целящиеся на повышение качества приложений на платформе. Теперь все разработчики должны соответствовать расширенным требованиям перед публикацией приложений. Разработчики могут выбирать сроки проверки в Play Console, и если срок не выбран до 29 февраля 2024 года, Google назначит его автоматически. Новые личные аккаунты разработчиков должны тестировать приложения на группе пользователей перед выпуском. Время на проверку приложений увеличено, чтобы обеспечить их безопасность и соответствие политикам Google.
Подробнее можно ознакомиться здесь.
Google ввела новые правила для проверки приложений в Google Play, целящиеся на повышение качества приложений на платформе. Теперь все разработчики должны соответствовать расширенным требованиям перед публикацией приложений. Разработчики могут выбирать сроки проверки в Play Console, и если срок не выбран до 29 февраля 2024 года, Google назначит его автоматически. Новые личные аккаунты разработчиков должны тестировать приложения на группе пользователей перед выпуском. Время на проверку приложений увеличено, чтобы обеспечить их безопасность и соответствие политикам Google.
Подробнее можно ознакомиться здесь.
👍5❤2🔥2
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Mobile Web, навигация и при чем тут Nginx
— История разработки приложения для складных смартфонов Samsung. Часть 2 — гайдлайны
— Автоматизированное тестирование событий аналитики в мобильном приложении: насколько это реально и оправдано
— Подключение сканера к Android или как почувствовать себя кассиром
— Из кондитера в программисты. Продолжение
— Just DUIT — первый взгляд на server-driven UI фреймворк для Flutter
— Оптимизация и автоматизация в бэкенд-разработке мобильных приложений: как ускорить разработку в четыре раза
— Разработка мобильных приложений для бизнеса: как создавать кроссплатформенные решения быстро и относительно дешево
— Интеграция системы «Антифрод» в работу операторов: требования к программному обеспечению и эффективность API
— Рефакторинг кода, и как его не бояться
— History of Flutter 💚
— Embedded Finance and Digital Wallets: A Comprehensive Guide for 2024
— The rules I am using to organize and document my Jetpack Compose code
— Seamlessly Integrating Native Modules in iOS for React Native AR Apps
— Exploring Modern Mobile App Development: A Comprehensive Guide
— Apps which will become famous in 2024
— How to Make an App-Like Offerup?
— Role Based Access Control in Flutter
— How I am documenting my interfaces in Kotlin
Посмотреть:
🌐 Как устроен Gradle Config Cache. Лучшие Практики. Интервью с инженером команды Gradle (⏱ 01:21:05)
🌐 #1 Как создать дизайн мобильного приложения. Создаем приложение с 0 до загрузки в AppStore. (⏱ 02:04:36)
Хорошего дня!
Почитать:
— Mobile Web, навигация и при чем тут Nginx
— История разработки приложения для складных смартфонов Samsung. Часть 2 — гайдлайны
— Автоматизированное тестирование событий аналитики в мобильном приложении: насколько это реально и оправдано
— Подключение сканера к Android или как почувствовать себя кассиром
— Из кондитера в программисты. Продолжение
— Just DUIT — первый взгляд на server-driven UI фреймворк для Flutter
— Оптимизация и автоматизация в бэкенд-разработке мобильных приложений: как ускорить разработку в четыре раза
— Разработка мобильных приложений для бизнеса: как создавать кроссплатформенные решения быстро и относительно дешево
— Интеграция системы «Антифрод» в работу операторов: требования к программному обеспечению и эффективность API
— Рефакторинг кода, и как его не бояться
— History of Flutter 💚
— Embedded Finance and Digital Wallets: A Comprehensive Guide for 2024
— The rules I am using to organize and document my Jetpack Compose code
— Seamlessly Integrating Native Modules in iOS for React Native AR Apps
— Exploring Modern Mobile App Development: A Comprehensive Guide
— Apps which will become famous in 2024
— How to Make an App-Like Offerup?
— Role Based Access Control in Flutter
— How I am documenting my interfaces in Kotlin
Посмотреть:
🌐 Как устроен Gradle Config Cache. Лучшие Практики. Интервью с инженером команды Gradle (⏱ 01:21:05)
🌐 #1 Как создать дизайн мобильного приложения. Создаем приложение с 0 до загрузки в AppStore. (⏱ 02:04:36)
Хорошего дня!
❤4👍2🔥1
📱 Metal-powered video upscaling
https://github.com/finnvoor/fx-upscale
@mobdevelop
brew install finnvoor/tools/fx-upscale
https://github.com/finnvoor/fx-upscale
@mobdevelop
🔥5❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Две идеи проектов для начинающих iOS-разработчиков
Flappy Fly Bird — проект с открытым исходным кодом по мотивам классики аркадного жанра на Swift 5.5, GameplayKit, SpriteKit и iOS 12.
Coffee-Ratio — приложение создано для любителей кофе и помогает пользователю рассчитать соотношение воды и кофе для каждой порции.
#ios #петпроект
Flappy Fly Bird — проект с открытым исходным кодом по мотивам классики аркадного жанра на Swift 5.5, GameplayKit, SpriteKit и iOS 12.
Coffee-Ratio — приложение создано для любителей кофе и помогает пользователю рассчитать соотношение воды и кофе для каждой порции.
#ios #петпроект
👍8❤2
В этом руководстве рассказывается о том, как автоматизировать обновление коммитов в кластерах Kubernetes с помощью Argo, установить отслеживание изменений, безопасность, откат и автоматическую синхронизацию.
https://arshsharma.com/posts/2023-10-14-argocd-github-actions-getting-started/
https://arshsharma.com/posts/2023-10-14-argocd-github-actions-getting-started/
Arsh Sharma
Setting Up a GitOps Workflow with Argo CD and GitHub Actions
GitOps is gaining increasing popularity these days, and for good reason. The principles of GitOps promote the use of Git repositories as the ultimate source of truth for application infrastructure and configuration. This concept revolves around storing all…
❤2
Пишем аналог приложения Uber на iOS
Интересный 4-часовой видеоурок, с помощью которого вы создадите почтиUber с помощью SwiftUI.
Автор разбирает:
— методы для получения текущего местоположения пользователя,
— создание интерфейса и реализацию функциональности просмотра запросов на поездку,
— поиск и выбор местоположения,
— добавление данных о поездке и тёмную тему.
Сохраняйте — будет, чем заняться на праздниках: https://youtu.be/Z6-KVWXbw-w
#ios
Интересный 4-часовой видеоурок, с помощью которого вы создадите почтиUber с помощью SwiftUI.
Автор разбирает:
— методы для получения текущего местоположения пользователя,
— создание интерфейса и реализацию функциональности просмотра запросов на поездку,
— поиск и выбор местоположения,
— добавление данных о поездке и тёмную тему.
Сохраняйте — будет, чем заняться на праздниках: https://youtu.be/Z6-KVWXbw-w
#ios
👍8❤2🔥2
Небольшой плейлист с видеоуроками по аутентификации для Flutter-приложений
Часть 1: Создание Login UI.
Часть 2: Email Login & Logout/
Часть 3: Регистрация/
Часть 4: Авторизация с помощью Google Sign In/
#flutter
Часть 1: Создание Login UI.
Часть 2: Email Login & Logout/
Часть 3: Регистрация/
Часть 4: Авторизация с помощью Google Sign In/
#flutter
YouTube
🔒📱 Modern Login UI • Flutter Auth Tutorial ♡
👨🏽💻📱💰 Build, Launch & Monetize Course: https://buildlaunchmonetize.app/
MY APPS
🔥📱 Habit Tracker: https://ritualz.app
💳📱 Expense Tracker: https://dollatracker.app
🥷🏽 FOLLOW ME
Patreon: https://www.patreon.com/mitchkoko/
Instagram: https://instagram.co…
MY APPS
🔥📱 Habit Tracker: https://ritualz.app
💳📱 Expense Tracker: https://dollatracker.app
🥷🏽 FOLLOW ME
Patreon: https://www.patreon.com/mitchkoko/
Instagram: https://instagram.co…
❤3
Ответ на один из 10 технических вопросов недавнего собеседования по Swift и Objective C был очевиден, но нуждался в точном объяснении.
Вот этот вопрос:
«Какие ссылки на объект применяются в Swift для предотвращения цикла сохранения:
a) сильные; б) слабые; в) бесхозные?»
Оптимальный ответ: б) слабые.
Но почему?
Циклы сохранения
Если вкратце, для управления памятью в Swift используется автоматический подсчет ссылок.
Когда объект инстанцируется, в памяти сохраняется дополнительная информация о нем для автоматических операций сохранения и освобождения, таких как подсчет ссылок — в коде это retainCount, — чтобы сохранить объект со строгими ссылками на его дочерние объекты, пока он во избежание высвобождения памяти еще «помечен» строгой ссылкой как необходимый.
«А КАК НАСЧЕТ ЗНАЧЕНИЙ-ТИПОВ ВРОДЕ СТРУКТУР?»
В ОТЛИЧИЕ ОТ ССЫЛОЧНЫХ ТИПОВ, ОБЪЕКТОВ, КОТОРЫМИ С ПОМОЩЬЮ ЭТИХ RETAINCOUNT ОТСЛЕЖИВАЕТСЯ ЧИСЛО ССЫЛОК НА ОБЪЕКТ, ЗНАЧЕНИЯМ-ТИПАМ ТАКАЯ СТРАТЕГИЯ НЕ ТРЕБУЕТСЯ. КАЖДЫЙ ЭКЗЕМПЛЯР ЗНАЧЕНИЯ-ТИПА — ЭТО СОБСТВЕННАЯ, НЕЗАВИСИМАЯ ЧАСТЬ ДАННЫХ, И ОБЛАСТЬ ЕГО СУЩЕСТВОВАНИЯ ПРИВЯЗАНА КО ВНЕШНЕЙ ЕГО ОБЛАСТИ.
КОПИИ ЭТИХ ЗНАЧЕНИЙ СОЗДАЮТСЯ ИХ ПЕРЕДАЧЕЙ КАК АРГУМЕНТОВ ИЛИ СОХРАНЕНИЕМ В ДРУГИХ ПЕРЕМЕННЫХ. НАПРИМЕР, ПРИ ПЕРЕДАЧЕ В SWIFT В КАЧЕСТВЕ АРГУМЕНТА ФУНКЦИИ ЗНАЧЕНИЯ-ТИПА, ТАКОГО КАК СТРУКТУРА ИЛИ ПЕРЕЧИСЛЕНИЕ, СОЗДАЕТСЯ КОПИЯ ЭТОГО ЗНАЧЕНИЯ И ТАКИМ ОБРАЗОМ ВЫДЕЛЯЕТСЯ НОВЫЙ КУСОК ПАМЯТИ. ЭТО НАЗЫВАЕТСЯ СЕМАНТИКОЙ КОПИРОВАНИЯ.
Возьмем приложение с двумя классами:
class Manager: EmployeeDelegate {
let employee: Employee
init(employee: Employee) {
self.employee = employee
self.employee.delegate = self
}
func perform() {/* код */}
...
}
protocol EmployeeDelegate: AnyObject {
func perform()
}
class Employee {
public var delegate: EmployeeDelegate?
...
}
В Swift это типичный шаблон с классом, который «знает», когда выполнять операцию, но неизвестно какую. В этом случае шаблоном делегирования с protocol гарантируется, что руководитель Manager определяет операцию и дает указания работнику Employee, который в нужный момент их выполняет.
Сильные ссылки
Проблема в том, что в этом примере очень четко генерируется цикл сохранения. Почему? Когда создается экземпляр Manager, в него передается Employee, который сохраняется, и создается сильная ссылка, так что память от объекта Employee не освобождается, пока существует его Manager.
Чтобы определить операции JobDelegate, для Employee нужен делегат. Здесь в методе инициализатора в качестве делегата задан объект Manager, так что в Employee тоже имеется сильная ссылка на Manager и память от экземпляра Manager не освобождается, пока существует его Employee.
То есть они не дадут друг другу освободить память в течение неопределенного времени:
📌 Продолжение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3
Adalo — создание веб- и мобильных приложений без необходимости написания кода
С помощью простого в использовании интерфейса перетаскивания, Adalo позволяет пользователям легко разрабатывать приложения и публиковать их напрямую в App Store, Google Play или на веб-сайте
Сервис предлагает разнообразные опции баз данных, интеграцию с такими сервисами, как Xano и Airtable, и возможность публикации приложений на различных платформах
Стоимость: #бесплатно (но есть платные тарифы)
#web #mobile #nocode
С помощью простого в использовании интерфейса перетаскивания, Adalo позволяет пользователям легко разрабатывать приложения и публиковать их напрямую в App Store, Google Play или на веб-сайте
Сервис предлагает разнообразные опции баз данных, интеграцию с такими сервисами, как Xano и Airtable, и возможность публикации приложений на различных платформах
Стоимость: #бесплатно (но есть платные тарифы)
#web #mobile #nocode
👍3❤2👎2🔥1
Марк Гурман из Bloomberg сообщил о возможных грядущих глобальных изменениях, которые будут реализованы в новой версии мобильной операционной системы iOS. По словам инсайдера, в ближайшем будущем он расскажет о них, сейчас он готов поделиться информацией о некоторых.
В частности, появится поддержка кросс-платформенных RCS-сообщений, что позволит пользователям с устройствами на iOS и Android обмениваться контентом без ограничений. В частности, речь о фото в высоком разрешении, аудиосообщениях, обмене информация в одной сети Wi-Fi, повышенном уровне защиты и так далее.
Заметно поумнеет голосовой помощник Siri, который будет использовать продвинутую версию генеративного искусственного интеллекта. Также Apple рассматривает возможность применения ИИ в сервисах и приложениях Apple Music, Pages, Keynote и Xcode.
Вероятно, iOS 18 станет более ожидаемым релизом, чем iPhone 16.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Раскраска SVG картинки во flutter, и почему я решил отключить Impeller
— Огромная шпаргалка с готовыми запросами SQL (SQLite)
— Реализация чата на Flutter при помощи вебсокетов
— Практическая реализация паттерна Server-Driven UI на Flutter c использованием фреймворка Duit
— Где изучать C# в 2024. Бесплатные курсы и полезные ресурсы
— Как создать shader в Flutter для эффектной анимации в приложении?
— Как с помощью ChatGPT реализовать раскраску во flutter
— Вся наша жизнь – игра: или как прижилась геймификация внутри мобильного приложения в ритейле
— Бесплатные курсы Golang 2024
— Уменьшаем boilerplate с помощью Swift Macros
— Направо пойдешь — в бэкенд придешь, налево — в мобилки…
— Кто ты, SwiftData
— Аналитика в игре на Godot: подключаем MyTracker
— How to create a similar pan an a zoom movement in Flutter flame
— First build and publish Nx expo app
— Ultimate Cross-Platform Framework Selection: Flutter or React Native
— Flutter Developer ROADMAP 2024
— Exploration of Flutter Hot Update Technology
— In-Depth Perspective on Flutter: A Comprehensive Analysis and Practice Guide
— SwiftUI Essentials: Crafting a To-Do List App with Xcode and Git Integration
— Easily Replicate a Waiting List UI in .NET MAUI
— Exploring UI UX Immersive Trends in 2024 and Beyond
— Generics in Swift: Expanding Flexibility and Code Reusability
Посмотреть:
🌐 Golang 100 вопросов с собеседований. Подготовка Go разработчика Часть 1 (⏱ 38:15)
🌐 Задание с собеседования Golang разработчика. Разбор важных тем. (⏱ 14:24)
🌐 Q&A Стрим. Прожариваем новые форматы (⏱ 01:19:43)
🌐 Разбор кода приложения по доставке пиццы (⏱ 01:45:57)
🌐 Сколько учиться #ios разработке? #apple #swift (⏱ 00:33)
🌐 Вклад Алан Тьюринга в развитии в #ИИ (⏱ 01:00)
🌐 Сколько времени нужно для разработки #ios приложения #apple #swift (⏱ 00:44)
🌐 Выполнение Тестового задания на вакансию #IOS разработчика. Часть 1 #swiftUI (⏱ 01:14:48)
🌐 Сколько стоит разработка #ios приложения #apple #swift #iphone (⏱ 00:37)
🌐 Вклад Джона фон Неймана в развитии в #ИИ (⏱ 00:56)
🌐 Первое в истории упоминание #ИИ (⏱ 00:28)
🌐 История развития Искуственного Интелекта. Фильм. Часть 1 (⏱ 09:48)
🌐 Про #ios разработку за 60 секунд #swift #apple (⏱ 00:59)
Хорошего дня!
Почитать:
— Раскраска SVG картинки во flutter, и почему я решил отключить Impeller
— Огромная шпаргалка с готовыми запросами SQL (SQLite)
— Реализация чата на Flutter при помощи вебсокетов
— Практическая реализация паттерна Server-Driven UI на Flutter c использованием фреймворка Duit
— Где изучать C# в 2024. Бесплатные курсы и полезные ресурсы
— Как создать shader в Flutter для эффектной анимации в приложении?
— Как с помощью ChatGPT реализовать раскраску во flutter
— Вся наша жизнь – игра: или как прижилась геймификация внутри мобильного приложения в ритейле
— Бесплатные курсы Golang 2024
— Уменьшаем boilerplate с помощью Swift Macros
— Направо пойдешь — в бэкенд придешь, налево — в мобилки…
— Кто ты, SwiftData
— Аналитика в игре на Godot: подключаем MyTracker
— How to create a similar pan an a zoom movement in Flutter flame
— First build and publish Nx expo app
— Ultimate Cross-Platform Framework Selection: Flutter or React Native
— Flutter Developer ROADMAP 2024
— Exploration of Flutter Hot Update Technology
— In-Depth Perspective on Flutter: A Comprehensive Analysis and Practice Guide
— SwiftUI Essentials: Crafting a To-Do List App with Xcode and Git Integration
— Easily Replicate a Waiting List UI in .NET MAUI
— Exploring UI UX Immersive Trends in 2024 and Beyond
— Generics in Swift: Expanding Flexibility and Code Reusability
Посмотреть:
🌐 Golang 100 вопросов с собеседований. Подготовка Go разработчика Часть 1 (⏱ 38:15)
🌐 Задание с собеседования Golang разработчика. Разбор важных тем. (⏱ 14:24)
🌐 Q&A Стрим. Прожариваем новые форматы (⏱ 01:19:43)
🌐 Разбор кода приложения по доставке пиццы (⏱ 01:45:57)
🌐 Сколько учиться #ios разработке? #apple #swift (⏱ 00:33)
🌐 Вклад Алан Тьюринга в развитии в #ИИ (⏱ 01:00)
🌐 Сколько времени нужно для разработки #ios приложения #apple #swift (⏱ 00:44)
🌐 Выполнение Тестового задания на вакансию #IOS разработчика. Часть 1 #swiftUI (⏱ 01:14:48)
🌐 Сколько стоит разработка #ios приложения #apple #swift #iphone (⏱ 00:37)
🌐 Вклад Джона фон Неймана в развитии в #ИИ (⏱ 00:56)
🌐 Первое в истории упоминание #ИИ (⏱ 00:28)
🌐 История развития Искуственного Интелекта. Фильм. Часть 1 (⏱ 09:48)
🌐 Про #ios разработку за 60 секунд #swift #apple (⏱ 00:59)
Хорошего дня!
👍3❤1🔥1
Организация “глобальных” провайдеров во Flutter Riverpod с помощью миксинов
В моем недавнем проекте Flutter за управление состоянием отвечает пакет Riverpod. Раньше, не имея опыта работы с этим пакетом, я использовал в основном Provider и GetX. Однако мне стало интересно, почему пользователи Flutter в последнее время с таким энтузиазмом отзываются о Riverpod. Поэтому при разработке нового проекта решил попробовать именно его — и был очарован возможностями этого инструмента.
Реализуя проект с помощью Riverpod, я с удовольствием отметил реактивный механизм пакета и спектр предлагаемых функций. Однако я не мог смириться с тем фактом, что провайдеры объявляются глобально (на верхнем уровне).
Не хочу сказать, что провайдер, объявленный как глобальная переменная, всегда является злом (более того, состояние провайдера управляется внутри ProviderContainer, поэтому вряд ли будет глобальным).
📌 Читать
В моем недавнем проекте Flutter за управление состоянием отвечает пакет Riverpod. Раньше, не имея опыта работы с этим пакетом, я использовал в основном Provider и GetX. Однако мне стало интересно, почему пользователи Flutter в последнее время с таким энтузиазмом отзываются о Riverpod. Поэтому при разработке нового проекта решил попробовать именно его — и был очарован возможностями этого инструмента.
Реализуя проект с помощью Riverpod, я с удовольствием отметил реактивный механизм пакета и спектр предлагаемых функций. Однако я не мог смириться с тем фактом, что провайдеры объявляются глобально (на верхнем уровне).
Не хочу сказать, что провайдер, объявленный как глобальная переменная, всегда является злом (более того, состояние провайдера управляется внутри ProviderContainer, поэтому вряд ли будет глобальным).
📌 Читать
👍3❤2🔥1
iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 1
Честно говоря, тестирование — это не так весело. Я бы предпочел просто запустить приложение, ни о чем другом не заботясь. Но, поскольку это неотъемлемая часть любого проекта, которая абсолютно необходима для хорошего пользовательского взаимодействия, продемонстрирую выполнение некоторых базовых тестов, помогая вам сэкономить время.
Вот что мы рассмотрим вместе с дополнительными рекомендациями.
Проект с тестированием
▪️ Создание проекта с тестами
▪️ Добавление тестов в имеющийся проект
Модульные тесты
▪️ Модели декодирования
▪️ HTTP-запросы с HTTP-заглушками
Тесты пользовательского интерфейса
▪️ Настройка идентификатора доступности
▪️ Инициализация представления
▪️ SearchBar
▪️ TableView
▪️ Навигация
▪️ Статичные и динамические UILabel
Покажу демо с очень простым примером для извлечения репозиториев GitHub по введенному ключевому слову. Этот проект наверняка пробовали все знакомые со Swift. Загружается он здесь.
Читая статью, заглядывайте туда.
📌 Читать
Честно говоря, тестирование — это не так весело. Я бы предпочел просто запустить приложение, ни о чем другом не заботясь. Но, поскольку это неотъемлемая часть любого проекта, которая абсолютно необходима для хорошего пользовательского взаимодействия, продемонстрирую выполнение некоторых базовых тестов, помогая вам сэкономить время.
Вот что мы рассмотрим вместе с дополнительными рекомендациями.
Проект с тестированием
Модульные тесты
Тесты пользовательского интерфейса
Покажу демо с очень простым примером для извлечения репозиториев GitHub по введенному ключевому слову. Этот проект наверняка пробовали все знакомые со Swift. Загружается он здесь.
Читая статью, заглядывайте туда.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 2
Модульный тест
Во-первых, что такое «модульный тест»? Это процесс проверки небольших фрагментов кода для обеспечения его целостности. Проверим пользовательские модели: struct, class, protocol и т. д.
Предпочитаю создавать отдельный class, делая из XCTestCase подкласс, соответствующий каждой тестируемой модели.
Тестирование моделей декодирования
Начнем с тестирования моделей декодирования Repository и Response. Упрощаем тестирование: в цель testsDemoTests добавляем SampleData. Это json-файлы с примерами ответов. Возьмите их на странице GitHub или создайте свои.
Тестируем Repository:
Присмотримся, что здесь происходит:
📌Продолжение
📌Часть 1
Модульный тест
Во-первых, что такое «модульный тест»? Это процесс проверки небольших фрагментов кода для обеспечения его целостности. Проверим пользовательские модели: struct, class, protocol и т. д.
Предпочитаю создавать отдельный class, делая из XCTestCase подкласс, соответствующий каждой тестируемой модели.
Тестирование моделей декодирования
Начнем с тестирования моделей декодирования Repository и Response. Упрощаем тестирование: в цель testsDemoTests добавляем SampleData. Это json-файлы с примерами ответов. Возьмите их на странице GitHub или создайте свои.
Тестируем Repository:
/
// RepositoryTests.swift
// testsDemoTests
//
// Создано Itsuki 17.10.2023.
//
import XCTest
// 1
@testable import testsDemo
final class RepositoryTests: XCTestCase {
// 2
var sut: Repository!
override func setUpWithError() throws {
try super.setUpWithError()
// 3: инициализируем экземпляр
// sut = YourTestInstance()
}
override func tearDownWithError() throws {
try super.tearDownWithError()
// 5: очистка
sut = nil
}
// 4
func testRepositoryDecoding() throws {
let path = Bundle(for: ResponseTest.self).path(forResource: "sampleRepository", ofType: "json")!
let data = NSData(contentsOfFile: path)! as Data
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
sut = try! decoder.decode(Repository.self, from: data)
XCTAssertEqual(sut.id, 44838949)
XCTAssertEqual(sut.fullName, "apple/swift")
XCTAssertEqual(sut.stargazersCount, 61951)
XCTAssertEqual(sut.language, "C++")
}
}
Присмотримся, что здесь происходит:
📌Продолжение
📌Часть 1
👍3❤1
По мере роста вашего приложения и вашей пользовательской базы вам придется добавлять новые функции, удалять другие и менять принцип работы приложения. Вместе с приложение растет и БД, которую тоже придется менять.
И в большинстве случаев Core Data автоматически выполнит процесс миграции за вас. Однако в некоторых случаях вам потребуется настроить процесс миграции, предоставив модель сопоставления, которая точно указывает Core Data, как перенести каждый атрибут и сущность из исходной модели в целевую.
О том, как это сделать — тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2