Тест-ревью: как прошли два года написания unit-тестов
Часто слышу мнение, что unit-тесты не нужны для мобильной разработки: в приложении должно быть минимум логики, основная работа с UI, а его сложно тестировать, да ещё и тесты отнимают время, которое можно было бы потратить на написание фич.
За этим мнением скрывается простая правда — люди, которые так говорят, не умеют писать тесты. Не умеют писать их быстро; писать там, где нужно; писать так, чтобы была ощутимая польза для бизнеса. Я тоже был таким — понимал, что тесты нужны, но не понимал какие, где и как их писать.
Рассказываю, что поменялось спустя 2 года и 4 тысячи тестов.
Статья: https://apptractor.ru/utst
Платформа: тестирование/iOS
⬆️: +10
Часто слышу мнение, что unit-тесты не нужны для мобильной разработки: в приложении должно быть минимум логики, основная работа с UI, а его сложно тестировать, да ещё и тесты отнимают время, которое можно было бы потратить на написание фич.
За этим мнением скрывается простая правда — люди, которые так говорят, не умеют писать тесты. Не умеют писать их быстро; писать там, где нужно; писать так, чтобы была ощутимая польза для бизнеса. Я тоже был таким — понимал, что тесты нужны, но не понимал какие, где и как их писать.
Рассказываю, что поменялось спустя 2 года и 4 тысячи тестов.
Статья: https://apptractor.ru/utst
Платформа: тестирование/iOS
⬆️: +10
YPImagePicker — это выбор (image picker) фото/видео в стиле Instagram, написанный на чистом Swift. Он многофункционален и легко настраивается в соответствии с требованиями вашего приложения.
YPImagePicker на GitHub: https://github.com/Yummypets/YPImagePicker
Платформа: iOS
⭐️: 3.8K
YPImagePicker на GitHub: https://github.com/Yummypets/YPImagePicker
Платформа: iOS
⭐️: 3.8K
Как использовать дженерики в Swift
Одна из наших основных обязанностей как разработчиков — максимально упрощать код и избегать повторений. Дженерики — это один из подходов, который обеспечивает множество преимуществ, таких как более высокая производительность, меньшее количество кода, повторно используемый код и т.д. Поэтому я считаю важным, чтобы каждый разработчик знал о них.
Перевод: https://apptractor.ru/gensft
Платформа: iOS/Swift
👏: 44
Одна из наших основных обязанностей как разработчиков — максимально упрощать код и избегать повторений. Дженерики — это один из подходов, который обеспечивает множество преимуществ, таких как более высокая производительность, меньшее количество кода, повторно используемый код и т.д. Поэтому я считаю важным, чтобы каждый разработчик знал о них.
Перевод: https://apptractor.ru/gensft
Платформа: iOS/Swift
👏: 44
👍2
LibreTube - альтернативный фронтенд YouTube для Android. Поддерживаются практически все функции оригинального клиента, кроме комментариев и поисковых фильтров.
LibreTube на GitHub: https://github.com/libre-tube/LibreTube
Платформа: Android
⭐️: 1.3K
LibreTube на GitHub: https://github.com/libre-tube/LibreTube
Платформа: Android
⭐️: 1.3K
Aurora OS: первый взгляд
На фоне всех происходящих событий, очень много людей стало задумываться, а есть ли у нас свои мобильные операционные системы. И как выяснилось они есть, их несколько и сегодня мы познакомимся с самой перспективной из них - Aurora OS. Это будет взгляд на мобильную разработку под российские ОС от разработчика с 8-летним опытом Android и iOS. Будем сравнивать, делать первые выводы.
В видео:
• 00:04:11 — Скачиваем SDK
• 00:10:23 — Обзор IDE и эмулятора
• 00:23:01 — Разбор верстки
• 00:39:30 — Как получить телефон на Aurora OS
• 00:41:02 — Что ещё можно сверстать
Видео: https://apptractor.ru/arra
Платформа: разработка
На фоне всех происходящих событий, очень много людей стало задумываться, а есть ли у нас свои мобильные операционные системы. И как выяснилось они есть, их несколько и сегодня мы познакомимся с самой перспективной из них - Aurora OS. Это будет взгляд на мобильную разработку под российские ОС от разработчика с 8-летним опытом Android и iOS. Будем сравнивать, делать первые выводы.
В видео:
• 00:04:11 — Скачиваем SDK
• 00:10:23 — Обзор IDE и эмулятора
• 00:23:01 — Разбор верстки
• 00:39:30 — Как получить телефон на Aurora OS
• 00:41:02 — Что ещё можно сверстать
Видео: https://apptractor.ru/arra
Платформа: разработка
💩9👍1🔥1🤮1
SwiftUI Introspect позволяет получить базовые элементы UIKit или AppKit для представления SwiftUI. Работает он добавляя пользовательский IntrospectionView в иерархию представлений, а затем просматривая иерархию UIKit, чтобы найти соответствующее представление. Например, с помощью Introspect вы можете получить доступ к UITableView для изменения разделителей или к UINavigationController для настройки панели вкладок.
SwiftUI Introspect на GitHub: https://github.com/siteline/SwiftUI-Introspect
Платформа: iOS
⭐️: 3.1K
SwiftUI Introspect на GitHub: https://github.com/siteline/SwiftUI-Introspect
Платформа: iOS
⭐️: 3.1K
Google запустил обучающий курс «Основы Android с Compose»
Подобно курсу «Основы Android на Kotlin», «Основы Android с Compose» обучает основам программирования на Kotlin. Вам не нужен какой-либо предыдущий опыт программирования, кроме базовой компьютерной грамотности, чтобы начать обучение. Курс не только охватывает самые последние методы создания приложений для Android, но и разработан таким образом, чтобы вам было проще и интереснее изучать Android-разработку.
Сайт: https://developer.android.com/courses/android-basics-compose/course
Платформа: Android
Подобно курсу «Основы Android на Kotlin», «Основы Android с Compose» обучает основам программирования на Kotlin. Вам не нужен какой-либо предыдущий опыт программирования, кроме базовой компьютерной грамотности, чтобы начать обучение. Курс не только охватывает самые последние методы создания приложений для Android, но и разработан таким образом, чтобы вам было проще и интереснее изучать Android-разработку.
Сайт: https://developer.android.com/courses/android-basics-compose/course
Платформа: Android
Худший баг в истории — случайная потеря лучших игроков
Представьте, что вы обнаружили серьезную ошибку в рабочей версии сразу после выпуска игры. Представьте, что эта ошибка вредит только вашим платящим клиентам. Представьте, что игра зависает сразу после того, как игроки совершат покупку в приложении. Представьте, что после этого при перезапуске игра просто зависает. Представьте, что игрок никогда не сможет запустить ее снова и должен удалить игру. Представьте, что ваше приложение в настоящее время уже выпущено в Apple App Store. Это история такого бага, худшего бага, с которым я когда-либо сталкивался за 30 лет программирования. Это история о том, как мы отследили проблему и поработали с Unity над ее исправлением.
Перевод: https://apptractor.ru/bgunt
Платформа: разработка/Unity
Представьте, что вы обнаружили серьезную ошибку в рабочей версии сразу после выпуска игры. Представьте, что эта ошибка вредит только вашим платящим клиентам. Представьте, что игра зависает сразу после того, как игроки совершат покупку в приложении. Представьте, что после этого при перезапуске игра просто зависает. Представьте, что игрок никогда не сможет запустить ее снова и должен удалить игру. Представьте, что ваше приложение в настоящее время уже выпущено в Apple App Store. Это история такого бага, худшего бага, с которым я когда-либо сталкивался за 30 лет программирования. Это история о том, как мы отследили проблему и поработали с Unity над ее исправлением.
Перевод: https://apptractor.ru/bgunt
Платформа: разработка/Unity
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Animated Music Card - анимированные карточки , сделанные с помощью Jetpack Compose.
Compose Animated Music Card на GitHub: https://github.com/YvesKalume/ComposeAnimatedMusicCard
Платформа: Android
⭐️: 12
Compose Animated Music Card на GitHub: https://github.com/YvesKalume/ComposeAnimatedMusicCard
Платформа: Android
⭐️: 12
Интересная история сбоя WorkManager
WorkManager отлично подходит для планирования фоновой работы на Android. Однако, поскольку такая отложенная работа находится за пределами жизненного цикла приложения, вы можете столкнуться с неожиданными сбоями.
Перевод: https://apptractor.ru/wrkmngr
Платформа: Android
WorkManager отлично подходит для планирования фоновой работы на Android. Однако, поскольку такая отложенная работа находится за пределами жизненного цикла приложения, вы можете столкнуться с неожиданными сбоями.
Перевод: https://apptractor.ru/wrkmngr
Платформа: Android
👍2
UIPilot - typesafe навигационная библиотека SwiftUI. UIPilot не является заменой NavigationView в SwiftUI, это скорее оболочка вокруг него, которую вы, вероятно, сами бы и написали. Таким образом, все стандартные функции NavigationView, такие как заголовок, жесты смахивания, верхняя панель и т. д., доступны по умолчанию. API-интерфейсы вдохновлены Android, Flutter и веб-маршрутизаторами - они очень просты и удобны в использовании. Типобезопасная навигация подразумевает, что маршрутизация по неправильному пути или с неправильными параметрами завершится ошибкой во время компиляции, а не во время выполнения.
UIPilot на GitHub: https://github.com/canopas/UIPilot
Платформа: iOS
⭐️: 108
UIPilot на GitHub: https://github.com/canopas/UIPilot
Платформа: iOS
⭐️: 108
Я заменил нативное iOS-приложение кроссплатформенным веб-приложением - и никто не заметил!
Оказывается, в 2022 году для многих приложений наконец-то сбылась мечта — написать один раз и запустить где угодно. Компромисс затрат и выгод для кроссплатформенных веб-приложений всегда заключался в обмене худшей производительности на меньшее время разработки. В 2014 году для большинства приложений это был плохой компромисс. Но за последние 8 лет многое изменилось.
Перевод: https://apptractor.ru/crssnow
Платформа: кроссплатформа
👏: 1K
Оказывается, в 2022 году для многих приложений наконец-то сбылась мечта — написать один раз и запустить где угодно. Компромисс затрат и выгод для кроссплатформенных веб-приложений всегда заключался в обмене худшей производительности на меньшее время разработки. В 2014 году для большинства приложений это был плохой компромисс. Но за последние 8 лет многое изменилось.
Перевод: https://apptractor.ru/crssnow
Платформа: кроссплатформа
👏: 1K
PowerSpinner - легковесные раскрывающиеся меню для Android, полностью настраиваемые, со своими курсорами и анимацией.
PowerSpinner на GitHub: https://github.com/skydoves/PowerSpinner
Платформа: Android
⭐️: 756
PowerSpinner на GitHub: https://github.com/skydoves/PowerSpinner
Платформа: Android
⭐️: 756
This media is not supported in your browser
VIEW IN TELEGRAM
CHIPageControl - это набор крутых анимированных контролов для замены скучного UIPageControl. Всего 8 элементов, библиотека работает с CocoaPods и Swift Package Manager, внедряется через сториборды или код.
CHIPageControl на GitHub: https://github.com/ChiliLabs/CHIPageControl
Платформа: iOS
⭐️: 3K
CHIPageControl на GitHub: https://github.com/ChiliLabs/CHIPageControl
Платформа: iOS
⭐️: 3K
👍1
Множество обновлений с Google I/O 2022:
• Новое в инструментах Android-разработки
• Jetpack Compose Beta 1.2
• Jetpack Compose для Wear OS
• Новый Health Connect - API для безопасного доступа к данным о здоровье
• Google Play запускает кастомные продуктовые страницы и события
• Google обновляет Firebase
• Google Play предлагает предоплаченную подписку и снижает минимальную цену до 5 центов
• Представлен Flutter 3
• Вторая бета Android 13 для всех
+ Google представил Pixel 6a
+ Google Play SDK Index
Платформа: Android
• Новое в инструментах Android-разработки
• Jetpack Compose Beta 1.2
• Jetpack Compose для Wear OS
• Новый Health Connect - API для безопасного доступа к данным о здоровье
• Google Play запускает кастомные продуктовые страницы и события
• Google обновляет Firebase
• Google Play предлагает предоплаченную подписку и снижает минимальную цену до 5 центов
• Представлен Flutter 3
• Вторая бета Android 13 для всех
+ Google представил Pixel 6a
+ Google Play SDK Index
Платформа: Android
Android Developers Blog
Google I/O 2022: What’s new in Android Development Tools
Posted by Juan Sebastian Oviedo, Senior Product Manager Today at Google I/O 2022, we announced an exciting set of new features a...
👍1
Now in Android - популярный блог и видео на YouTube, посвященные новейшим и лучшим тенденциям в Android-разработке. Google опубликовал приложение Now in Android на GitHub. Оно демонстрирует передовой опыт, продуманный дизайн и решения сложных реальных проблем. В альфа-версии есть Jetpack Compose, темы Material3, адаптивные шаблоны для разных экранов, официально одобренная архитектура, реактивное программирование с Kotlin Flows, Room и Proto DataStore, WorkManager.
Now in Android на GitHub: https://github.com/android/nowinandroid
Платформа: Android
⭐️: 737
Now in Android на GitHub: https://github.com/android/nowinandroid
Платформа: Android
⭐️: 737
Разработчики Google Home получили новый интересный инструмент. На I/O анонсировали расширение Google Home для Microsoft Visual Studio Code.
Расширение Google Home состоит из четырех основных компонентов. Самый интересный - симулятор Google Assistant, благодаря которому можно тестировать и обеспечивать полную совместимость с Assistant, не выходя из своей среды программирования. В нем же есть компонент “Пакетные высказывания”, который позволяет тестировать сразу несколько команд. Кроме того есть Cloud Logging и Home Graph Viewer для отладки в реальном времени и поиска и тестирования устройства, принадлежащие вашему проекту. И все это при том, что вам никогда не придется покидать Visual Studio Code.
Самый простой способ установить расширение Google Home — через маркетплейс внутри самой Visual Studio Code. Изучить документацию вы можете тут. Если вы заинтересованы в разработке для Google Home, обязательно посмотрите сессию с идущей Google I/O.
Расширение Google Home состоит из четырех основных компонентов. Самый интересный - симулятор Google Assistant, благодаря которому можно тестировать и обеспечивать полную совместимость с Assistant, не выходя из своей среды программирования. В нем же есть компонент “Пакетные высказывания”, который позволяет тестировать сразу несколько команд. Кроме того есть Cloud Logging и Home Graph Viewer для отладки в реальном времени и поиска и тестирования устройства, принадлежащие вашему проекту. И все это при том, что вам никогда не придется покидать Visual Studio Code.
Самый простой способ установить расширение Google Home — через маркетплейс внутри самой Visual Studio Code. Изучить документацию вы можете тут. Если вы заинтересованы в разработке для Google Home, обязательно посмотрите сессию с идущей Google I/O.
👍1
Runestone — производительный текстовый редактор и одноименный фреймворк для iOS с функциями редактирования кода. Имеет подсветку синтаксиса, нумерацию строк, подсветку текущей строки, функцию отображения невидимых символов (табов, переносов строк), вставку пар символов (кавычек), поиск с регулярными выражениями и пр.
Runestone на GitHub: https://github.com/simonbs/Runestone
Платформа: iOS
⭐️: 610
Runestone на GitHub: https://github.com/simonbs/Runestone
Платформа: iOS
⭐️: 610
Floating Action Button Speed Dial - библиотека Android, обеспечивающая реализацию плавающей кнопки с быстрыми действиями в стиле Material Design как для классических View, так и для Compose. Из фич - полная настройка кнопок, анимации, разные иконки для открыто/закрыто, расширение вверх,вправо или влево.
Floating Action Button Speed Dial на GitHub: https://github.com/leinardi/FloatingActionButtonSpeedDial
Платформа: Android
⭐️: 1.3K
Floating Action Button Speed Dial на GitHub: https://github.com/leinardi/FloatingActionButtonSpeedDial
Платформа: Android
⭐️: 1.3K
Многие софтверные компании — посмешище
Я занимаюсь программированием более двух десятилетий, и я работал как в компаниях, так и вне их. Я выполнял скучную работу в крупных финансовых и консалтинговых фирмах, а также работал над интересным графическим проектом для небольшой софтверной компании, которая производила классные инструменты для киностудий. Я могу вам сказать одно: многие «инженеры-программисты», особенно те, кто работает в действительно крупных компаниях, выполняют очень мало работы. На самом деле многим из них в основном платят за то, что они делают очень мало (заметьте, я сказал «многим», а не «все»).
Перевод: https://apptractor.ru/swftjk
Платформа: разработка
Я занимаюсь программированием более двух десятилетий, и я работал как в компаниях, так и вне их. Я выполнял скучную работу в крупных финансовых и консалтинговых фирмах, а также работал над интересным графическим проектом для небольшой софтверной компании, которая производила классные инструменты для киностудий. Я могу вам сказать одно: многие «инженеры-программисты», особенно те, кто работает в действительно крупных компаниях, выполняют очень мало работы. На самом деле многим из них в основном платят за то, что они делают очень мало (заметьте, я сказал «многим», а не «все»).
Перевод: https://apptractor.ru/swftjk
Платформа: разработка