AppFiles - Mobile Development
Как обрабатывать пустые состояния с помощью UIContentUnavailableConfiguration В этом году на WWDC Apple удивила разработчиков неожиданным улучшением UIKit. Введение UIContentUnavailableConfiguration было направлено на упрощение процесса создания пустых состояний…
AppTractor
Как использовать UIContentUnavailableConfiguration для управления пустыми состояниями
Мне очень нравится это улучшение в UIKit, оно затрагивает аспект, которым долгое время пренебрегали разработчики и дизайнеры - пустое состояние.
Quick - behavior-driven фреймворк тестирования для Swift и Objective-C. Quick помогает вам проверить, как ведет себя ваш код в приложении, сравнивая то, что вы ожидаете от приложения, с тем, что получаете.
Quick на GitHub: https://github.com/Quick/Quick
Платформа: iOS
⭐️: 9.7K
Quick на GitHub: https://github.com/Quick/Quick
Платформа: iOS
⭐️: 9.7K
Портирование Graphing Calculator с C++ на Swift
Стоило ли мое время портирования на Swift? Мне понравилось изучать Swift, и теперь я намного больше доволен состоянием кода. Писать на Swift — сплошное удовольствие. С 80-х я намеревался в конечном итоге открыть исходный код. Когда я решил сделать это с кодовой базой C++, я понял, что это не будет полезным вкладом из-за накопившегося за десятилетия технического долга, делающего код C++ непригодным для сопровождения. Теперь я уверен, что новый код можно превратить в полезные автономные пакеты Swift для математических выражений, редактирования, числовых и символьных вычислений и построения графиков.
Статья: https://apptractor.ru/info/articles/portirovanie-graphing-calculator-s-c-na-swift.html
Платформа: iOS
Стоило ли мое время портирования на Swift? Мне понравилось изучать Swift, и теперь я намного больше доволен состоянием кода. Писать на Swift — сплошное удовольствие. С 80-х я намеревался в конечном итоге открыть исходный код. Когда я решил сделать это с кодовой базой C++, я понял, что это не будет полезным вкладом из-за накопившегося за десятилетия технического долга, делающего код C++ непригодным для сопровождения. Теперь я уверен, что новый код можно превратить в полезные автономные пакеты Swift для математических выражений, редактирования, числовых и символьных вычислений и построения графиков.
Статья: https://apptractor.ru/info/articles/portirovanie-graphing-calculator-s-c-na-swift.html
Платформа: iOS
Я хочу запускать любое количество Android UI тестов на каждом PR
Серия из 5 статей от Евгения Мацюка, который решает проблему автоматизации тестирования. Сам Евгений работает в Marathon Labs, которая как раз работает на тестовым облаком, так что он сравнивает все доступные решения и заодно продвигает свою платформу.
Статья: https://proandroiddev.com/i-want-to-run-any-number-of-android-ui-tests-on-each-pr-your-actions-part-i-40d694c7d641
Платформа: Android
Серия из 5 статей от Евгения Мацюка, который решает проблему автоматизации тестирования. Сам Евгений работает в Marathon Labs, которая как раз работает на тестовым облаком, так что он сравнивает все доступные решения и заодно продвигает свою платформу.
Статья: https://proandroiddev.com/i-want-to-run-any-number-of-android-ui-tests-on-each-pr-your-actions-part-i-40d694c7d641
Платформа: Android
👍2
AnkiDroid - полуофициальный порт на Android системы карточек Anki для интервального повторения. Есть ночной режим, вайтборд, виджет прогресса, статистика, синхронизация с AnkiWeb, text-to-speech, более 6000 готовых колод карточек, 2 алгоритма повторения, добавление новых карточек на основе интентов.
AnkiDroid на GitHub: https://github.com/ankidroid/Anki-Android
Платформа: Android
⭐️: 6.5K
AnkiDroid на GitHub: https://github.com/ankidroid/Anki-Android
Платформа: Android
⭐️: 6.5K
Kotlin Multiplatform и Compose Multiplatform — стратегический провал Apple
Kotlin Multiplatform (KMP) и Compose Multiplatform (CM) представляют собой одну из последних попыток решить эти проблемы. Вместе они представляют собой яркую надежду для менеджмента…
А для Apple они представляют собой крупный стратегический провал высшего порядка.
Статья: https://apptractor.ru/info/articles/kotlin-compose-multiplatform.html
Платформа: кроссплатформа
Kotlin Multiplatform (KMP) и Compose Multiplatform (CM) представляют собой одну из последних попыток решить эти проблемы. Вместе они представляют собой яркую надежду для менеджмента…
А для Apple они представляют собой крупный стратегический провал высшего порядка.
Статья: https://apptractor.ru/info/articles/kotlin-compose-multiplatform.html
Платформа: кроссплатформа
🤡6🤣1
Видео и подкасты за неделю
•
•
•
•
•
•
•
•
•
•
•
•
•
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
•
(iOS Ru)
SwiftUI vs UIKit. Что выбрать новичку?•
(iOS En)
visionOS Fundamentals•
(iOS En)
SwiftUI Menu and Context Menu: How to Show Buttons with Dropdown Lists•
(iOS En)
SwiftUI Presentations with Modals, Bottom Sheets, and FullScreen cover in iOS•
(iOS En)
MatchedGeometryEffect in SwiftUI•
(And Ru)
Android TextView freezesText — замораживаем текст в Android-приложении•
(And Ru)
Что внутри Android SDK•
(And En)
Top 3 things to know from Google Play at Google I/O '2•
(And En)
Technical quality on Google Play•
(And En)
What is the Context? - Android Basics 2023•
(And En)
ViewModels & Configuration Changes - Android Basics 2023•
(And En)
The Art of App Modularization•
(Dev Ru)
Podlodka #323: выбираем язык конфигураций — YAML, TOML или DhallПосмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
AppTractor
SwiftUI vs UIKit. Что выбрать новичку?
Не пропустите это информативное руководство по выбору и начните свое путешествие в мир мобильной разработки с правильной основой!
👍1
iOS Starter Kit - бесконечный набор примеров для изучающих язык Swift. От самых простых примеров до архитектуры и полезных фишек.
iOS Starter Kit на GitHub: https://github.com/jrasmusson/ios-starter-kit
Платформа: iOS
⭐️: 793
iOS Starter Kit на GitHub: https://github.com/jrasmusson/ios-starter-kit
Платформа: iOS
⭐️: 793
GitHub
GitHub - jrasmusson/ios-starter-kit: A starter kit for those interested in iOS programming
A starter kit for those interested in iOS programming - jrasmusson/ios-starter-kit
🔥2
Осознанная оптимизация Compose
Compose — относительно молодая технология написания декларативного UI. Множество разработчиков даже не предполагают, что пишут неоптимальный код в такой критически важной части, и впоследствии это приводит к неожиданной низкой производительности и проседании метрик.
Статья: https://habr.com/ru/companies/ozontech/articles/742854/
Платформа: Android
Compose — относительно молодая технология написания декларативного UI. Множество разработчиков даже не предполагают, что пишут неоптимальный код в такой критически важной части, и впоследствии это приводит к неожиданной низкой производительности и проседании метрик.
Статья: https://habr.com/ru/companies/ozontech/articles/742854/
Платформа: Android
👍2
Императивный UIKit vs Декларативный SwiftUI
Цель статьи - помочь разработчикам приложений для iOS понять различия между императивным и декларативным подходами к программированию, а также рассмотреть плюсы и минусы фреймворков UIKit и SwiftUI. Знакомство с ними необходимо для оптимизации процесса разработки и создания продукта высокого качества.
Статья: https://habr.com/ru/companies/ozontech/articles/742750/
Платформа: iOS
Цель статьи - помочь разработчикам приложений для iOS понять различия между императивным и декларативным подходами к программированию, а также рассмотреть плюсы и минусы фреймворков UIKit и SwiftUI. Знакомство с ними необходимо для оптимизации процесса разработки и создания продукта высокого качества.
Статья: https://habr.com/ru/companies/ozontech/articles/742750/
Платформа: iOS
Flagfit - это мощная, легкая библиотека, предназначенная для превращения ваших функциональных флагов в простые в управлении интерфейсы Kotlin. Будь вы небольшим стартапом или крупной компанией, вы найдете универсальность и простоту Flagfit полезными для вашего цикла разработки программного обеспечения.
Интегрировав Flagfit в свой рабочий процесс разработки, вы сможете:
1. Эффективно управлять развертыванием функций: включать и выключать новые функции без деплоя нового кода, обеспечивая гибкость при тестировании, итерациях и выпуске в своем собственном темпе.
2. Проводить A/B-тестирование: легко создавать и управлять несколькими версиями вашего приложения для проведения экспериментов и принятия решений на основе данных.
3. Снижать риски: постепенно внедрять функции для подмножества пользователей, чтобы минимизировать влияние потенциальных ошибок или проблем.
Кроме того, Flagfit предоставляет набор надежных инструментов для создания собственных источников флагов, асинхронной выборки флагов с помощью Kotlin Coroutines, пользовательских аннотаций и многого другого.
Flagfit на GitHub: https://github.com/abema/flagfit
Платформа: Android
⭐️: 72
Интегрировав Flagfit в свой рабочий процесс разработки, вы сможете:
1. Эффективно управлять развертыванием функций: включать и выключать новые функции без деплоя нового кода, обеспечивая гибкость при тестировании, итерациях и выпуске в своем собственном темпе.
2. Проводить A/B-тестирование: легко создавать и управлять несколькими версиями вашего приложения для проведения экспериментов и принятия решений на основе данных.
3. Снижать риски: постепенно внедрять функции для подмножества пользователей, чтобы минимизировать влияние потенциальных ошибок или проблем.
Кроме того, Flagfit предоставляет набор надежных инструментов для создания собственных источников флагов, асинхронной выборки флагов с помощью Kotlin Coroutines, пользовательских аннотаций и многого другого.
Flagfit на GitHub: https://github.com/abema/flagfit
Платформа: Android
⭐️: 72
GitHub
GitHub - abema/flagfit: A Flexible Flag client for Android and Kotlin
A Flexible Flag client for Android and Kotlin. Contribute to abema/flagfit development by creating an account on GitHub.
Google запустил обучающий курс по генеративному ИИ
Программа состоит из 10 учебных потоков.
1. Введение в генеративный ИИ
2. Введение в большие языковые модели
3. Введение в ответственный ИИ
4. Основы генеративного ИИ
5. Введение в генерацию изображений
6. Архитектура Кодер-декодер
7. Механизм внимания
8. Модели Transformer и модель BERT
9. Создание моделей описания изображений
10. Введение в Generative AI Studio
Желательно иметь начальный уровень владения Python и знание Tensorflow.
Подробнее: https://apptractor.ru/learn/google-zapustil-obuchayuschiy-kurs-po-generativnomu-ii.html
Платформа: обучение
Программа состоит из 10 учебных потоков.
1. Введение в генеративный ИИ
2. Введение в большие языковые модели
3. Введение в ответственный ИИ
4. Основы генеративного ИИ
5. Введение в генерацию изображений
6. Архитектура Кодер-декодер
7. Механизм внимания
8. Модели Transformer и модель BERT
9. Создание моделей описания изображений
10. Введение в Generative AI Studio
Желательно иметь начальный уровень владения Python и знание Tensorflow.
Подробнее: https://apptractor.ru/learn/google-zapustil-obuchayuschiy-kurs-po-generativnomu-ii.html
Платформа: обучение
👍1
Как самому научиться Android-разработке
Андрей Белоус разрабатывает мобильные приложения уже больше 6 лет. В 2021 году занял 3 место на чемпионате Яндекса по мобильной разработке с 5000 участниками, а сейчас работает Senior Android Developer в Лондоне. До мобильной разработки он успел поработать программистом 1С и отучиться на сварщика в универе. А потом сам научился разрабатывать мобильные приложения, не потратив на это ни рубля. С ним мы поговорили о том, как самостоятельно стать Android-разработчиком.
Интервью: https://apptractor.ru/info/interview/kak-samomu-nauchitsya-android-razrabotke.html
Платформа: Android/обучение
Андрей Белоус разрабатывает мобильные приложения уже больше 6 лет. В 2021 году занял 3 место на чемпионате Яндекса по мобильной разработке с 5000 участниками, а сейчас работает Senior Android Developer в Лондоне. До мобильной разработки он успел поработать программистом 1С и отучиться на сварщика в универе. А потом сам научился разрабатывать мобильные приложения, не потратив на это ни рубля. С ним мы поговорили о том, как самостоятельно стать Android-разработчиком.
Интервью: https://apptractor.ru/info/interview/kak-samomu-nauchitsya-android-razrabotke.html
Платформа: Android/обучение
👍5
ReSwift - это Redux-подобная реализация архитектуры однонаправленного потока данных в Swift. ReSwift поможет вам разделить три важных аспекта компонентов вашего приложения:
• Состояния: в приложении ReSwift все состояния приложения хранится в явном виде в структуре данных. Это помогает избежать сложного кода управления состояниями, обеспечивает более простую отладку и имеет много других преимуществ.
• Представления: в приложении ReSwift ваши представления обновляются при изменении состояния. Ваши представления становятся простой визуализацией текущего состояния приложения.
• Изменения состояния: вы можете изменять состояние только с помощью действий. Действия - это небольшие фрагменты данных, которые описывают изменение состояния. Радикально ограничив способы изменения состояния, ваше приложение становится более понятным, и с ним легче работать в команде.
Библиотека ReSwift крошечная, что позволяет быстро погрузиться в код и понять каждую строчку.
ReSwift на GitHub: https://github.com/ReSwift/ReSwift
Статья о потоках: Реализация Unidirectional Data Flow в супераппе
Платформа: iOS
⭐️: 7.4K
• Состояния: в приложении ReSwift все состояния приложения хранится в явном виде в структуре данных. Это помогает избежать сложного кода управления состояниями, обеспечивает более простую отладку и имеет много других преимуществ.
• Представления: в приложении ReSwift ваши представления обновляются при изменении состояния. Ваши представления становятся простой визуализацией текущего состояния приложения.
• Изменения состояния: вы можете изменять состояние только с помощью действий. Действия - это небольшие фрагменты данных, которые описывают изменение состояния. Радикально ограничив способы изменения состояния, ваше приложение становится более понятным, и с ним легче работать в команде.
Библиотека ReSwift крошечная, что позволяет быстро погрузиться в код и понять каждую строчку.
ReSwift на GitHub: https://github.com/ReSwift/ReSwift
Статья о потоках: Реализация Unidirectional Data Flow в супераппе
Платформа: iOS
⭐️: 7.4K
Изнутри: Swift макрос — #Preview
Макрос #Preview в языке Swift предоставляет удобный способ создания и предварительного просмотра компонентов пользовательского интерфейса. Он позволяет разработчикам быстро и легко создавать превью для своих View, чтобы визуально оценить, как они выглядят и взаимодействуют.
Статья: https://habr.com/ru/companies/ozontech/articles/744216/
Платформа: iOS
Макрос #Preview в языке Swift предоставляет удобный способ создания и предварительного просмотра компонентов пользовательского интерфейса. Он позволяет разработчикам быстро и легко создавать превью для своих View, чтобы визуально оценить, как они выглядят и взаимодействуют.
Статья: https://habr.com/ru/companies/ozontech/articles/744216/
Платформа: iOS
Хабр
Изнутри: Swift макрос — #Preview
Макрос #Preview в языке Swift предоставляет удобный способ создания и предварительного просмотра компонентов пользовательского интерфейса. Он позволяет разработчикам быстро и легко...
This media is not supported in your browser
VIEW IN TELEGRAM
Dropbox переделал поиск на 40% быстрее с помощью Jetpack Compose
После внедрения Compose разработчики Dropbox переписали множество функций приложения, включая домашний экран, предварительный просмотр файлов и поиск. Поиск в Dropbox был полностью переделан всего за несколько недель, что на 40% меньше, чем ожидалось, и меньше половины времени, которое потребовалось на создание аналогичной функции для iOS.
Статья: https://android-developers.googleblog.com/2023/06/dropbox-rebuilt-search-experience-faster-with-jetpack-compose.html
Платформа: Android
После внедрения Compose разработчики Dropbox переписали множество функций приложения, включая домашний экран, предварительный просмотр файлов и поиск. Поиск в Dropbox был полностью переделан всего за несколько недель, что на 40% меньше, чем ожидалось, и меньше половины времени, которое потребовалось на создание аналогичной функции для iOS.
Статья: https://android-developers.googleblog.com/2023/06/dropbox-rebuilt-search-experience-faster-with-jetpack-compose.html
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
TranslationPlugin - плагин для IntelliJ/Android Studio IDE для перевода текста. Поддерживает несколько переводчиков, может переводить сразу на несколько языков, переводить целые документы, работать со словарями, автоматически переводить документацию и т.п.
TranslationPlugin на GitHub: https://github.com/YiiGuxing/TranslationPlugin
Платформа: Android
⭐️ : 10.1K
TranslationPlugin на GitHub: https://github.com/YiiGuxing/TranslationPlugin
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка статей про снижение времени запуска
• Официальное руководство Apple
• Как мы сократили время запуска нашего iOS-приложения на 60%
• Как 5 приложений для iOS могут сократить время запуска в среднем на 28%
• Измерение задержки старта iOS-приложений в масштабе Uber
• Официальное руководство Google
• Как мы снизили время запуска FullStory на Android на 75%
• Как мы сократили время запуска Android-приложения на 77%
• Как один Android-разработчик за месяц сократил время запуска приложения Lyft 21%
Платформа: iOS/Android
• Официальное руководство Apple
• Как мы сократили время запуска нашего iOS-приложения на 60%
• Как 5 приложений для iOS могут сократить время запуска в среднем на 28%
• Измерение задержки старта iOS-приложений в масштабе Uber
• Официальное руководство Google
• Как мы снизили время запуска FullStory на Android на 75%
• Как мы сократили время запуска Android-приложения на 77%
• Как один Android-разработчик за месяц сократил время запуска приложения Lyft 21%
Платформа: iOS/Android
Apple Developer Documentation
Reducing your app’s launch time | Apple Developer Documentation
Create a more responsive experience with your app by minimizing time spent in startup.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Создание часов в Jetpack Compose с помощью Canvas
В этой статье я объясню, как мы можем реализовать это с помощью API Compose Canvas. Я также расскажу о математических концепциях, связанных с вычислением координат на окружности и рисованием фигур и текста вокруг этих координат. Многие из используемых здесь формул были получены методом проб и ошибок, поэтому их понимание поначалу может оказаться сложным. Однако я буду упрощать объяснения с помощью диаграмм, чтобы облегчить их понимание. Надеюсь, вам понравится читать эту статью.
Статья: https://proandroiddev.com/crafting-a-clock-with-canvas-9b1ad430da72
Платформа: Android
В этой статье я объясню, как мы можем реализовать это с помощью API Compose Canvas. Я также расскажу о математических концепциях, связанных с вычислением координат на окружности и рисованием фигур и текста вокруг этих координат. Многие из используемых здесь формул были получены методом проб и ошибок, поэтому их понимание поначалу может оказаться сложным. Однако я буду упрощать объяснения с помощью диаграмм, чтобы облегчить их понимание. Надеюсь, вам понравится читать эту статью.
Статья: https://proandroiddev.com/crafting-a-clock-with-canvas-9b1ad430da72
Платформа: Android
❤3
Mapbox Maps SDK для iOS - это открытая библиотека для отображения интерактивных кастомизируемых карт в iOS. Она принимает стили карт, применяет их к векторным плиткам и отображает их с помощью Metal. Есть отдельные библиотеки для построения маршрутов, поиска локаций. То же самое и для Android.
Mapbox Maps SDK iOS на GitHub: https://github.com/mapbox/mapbox-maps-ios
Платформа: iOS
⭐️: 322
Mapbox Maps SDK iOS на GitHub: https://github.com/mapbox/mapbox-maps-ios
Платформа: iOS
⭐️: 322