7 инструментов, чтобы писать на Swift с комфортом 🤌
Чем больше ваше приложение, тем больше в нем кода, ну а когда количество строк неумолимо растет, становится сложнее понимать структуру документа. Особенно — для других разработчиков, если работаете в команде.
В этой статье собраны 7 крутых инструментов, которые помогут избавиться от git-конфликтов, привести код к общему виду и в целом получать больше удовольствия от работы со своим кодом.
Первые два (SwiftLint и SwiftFormat) рекомендую практически в обязательном порядке.
#ios
Чем больше ваше приложение, тем больше в нем кода, ну а когда количество строк неумолимо растет, становится сложнее понимать структуру документа. Особенно — для других разработчиков, если работаете в команде.
В этой статье собраны 7 крутых инструментов, которые помогут избавиться от git-конфликтов, привести код к общему виду и в целом получать больше удовольствия от работы со своим кодом.
Первые два (SwiftLint и SwiftFormat) рекомендую практически в обязательном порядке.
#ios
Medium
7 Tools to Help You Write Better Swift Code
Improve your iOS code quality with these small tools
👍3
На чем пишут в Apple?
Apple не выкладывают исходники своих iOS-приложений, однако по их файлам все же можно определить, на каких языках они написаны.
Автор блога Timac провел исследование, чтобы выяснить, на какие языки и технологии полагаются разработчики Apple. По ситуации на декабрь 2021:
👉 Более 89% встроенных приложений на iOS 15.0 используют Objective-C и лишь 13% — Swift
👉 При этом объем использования свифта вырос почти в 2 раза с предыдущей версии ОС
👉 17% используют C++ — в основном код на плюсах используется в низкоуровневых фреймворках
Подробнее с графиками и пояснениями — в этой статье
#ios
Apple не выкладывают исходники своих iOS-приложений, однако по их файлам все же можно определить, на каких языках они написаны.
Автор блога Timac провел исследование, чтобы выяснить, на какие языки и технологии полагаются разработчики Apple. По ситуации на декабрь 2021:
👉 Более 89% встроенных приложений на iOS 15.0 используют Objective-C и лишь 13% — Swift
👉 При этом объем использования свифта вырос почти в 2 раза с предыдущей версии ОС
👉 17% используют C++ — в основном код на плюсах используется в низкоуровневых фреймворках
Подробнее с графиками и пояснениями — в этой статье
#ios
👍5
Предсоздание проекта на Kotlin Multiplatform Mobile
Разработчик из JetBrains реализовал удобное веб-приложение для преднастройки проекта KMM. Сервис называется Kotlin Multiplatform Wizard и позволяет задать настройки нового проекта прямо на сайте, а затем скачать готовый шаблон.
Пользоваться уже можно: terrakok.github.io/kmp-web-wizard
#crossplatform
Разработчик из JetBrains реализовал удобное веб-приложение для преднастройки проекта KMM. Сервис называется Kotlin Multiplatform Wizard и позволяет задать настройки нового проекта прямо на сайте, а затем скачать готовый шаблон.
Пользоваться уже можно: terrakok.github.io/kmp-web-wizard
#crossplatform
👍3🔥1
Временная шкала для Android — библиотека TimelineView
Шкалу TimelineView можно быстро встроить в свое приложение, доступно 2 варианта использования: как декоратор RecyclerView или как автономный View.
— Автоматически подстраивается под высоту основного элемента
— Поддерживает анимации растяжения
— Подойдет для роадмапов, планировщиков или любых приложений с уровневой системой
— Полностью на Kotlin
Подробнее на гитхабе: github.com/lriccardo/TimelineView
#android
Шкалу TimelineView можно быстро встроить в свое приложение, доступно 2 варианта использования: как декоратор RecyclerView или как автономный View.
— Автоматически подстраивается под высоту основного элемента
— Поддерживает анимации растяжения
— Подойдет для роадмапов, планировщиков или любых приложений с уровневой системой
— Полностью на Kotlin
Подробнее на гитхабе: github.com/lriccardo/TimelineView
#android
👍4
Реализуем подвал приложения на iOS 📱
Bottom Sheet — одна из основных областей интерфейса приложения, находящаяся снизу под основным контентом и содержащая информацию, которая должна всегда быть под рукой. Обычно там располагают поиск, настройки аудио, избранные действия или статистику использования
В большой статье про Bottom Sheet на Хабре читаем, как правильно реализовать подвал без потери адаптивности, настроить область вытягивания и закастомить его под формат своего проекта
Материал объемный, но рекомендую добавить в закладки, так как там покрывается почти вся основная информация по теме
#ios
Bottom Sheet — одна из основных областей интерфейса приложения, находящаяся снизу под основным контентом и содержащая информацию, которая должна всегда быть под рукой. Обычно там располагают поиск, настройки аудио, избранные действия или статистику использования
В большой статье про Bottom Sheet на Хабре читаем, как правильно реализовать подвал без потери адаптивности, настроить область вытягивания и закастомить его под формат своего проекта
Материал объемный, но рекомендую добавить в закладки, так как там покрывается почти вся основная информация по теме
#ios
Хабр
Bottom Sheet, перейдём на «ты»?
Bottom Sheet представлялся мне сложным и недосягаемым. Это был вызов! Я не понимал, с чего начать. Возникало много вопросов: использовать view или view controller? Auto или manual layout? Как...
Как оптимизировать Android-игру под PC, а главное зачем?
В октябре рассказывал, как Microsoft и Google готовят платформу для нативного запуска android-приложений на Windows, и вот первые серьезные результаты: выкачен сервис Google Play Games для ПК и инструменты для адаптации приложений.
Бета-тест пока что открыт только для Южной Кореи, Гонконга и Тайваня, впрочем в этом году Google обещают расширить список стран, так что со временем дойдет и до нас.
Чтобы получить понимание, как все это устроено и как подготовить свое приложение к запуску на ПК — подробная инструкция от Google на android.developers.
#android
В октябре рассказывал, как Microsoft и Google готовят платформу для нативного запуска android-приложений на Windows, и вот первые серьезные результаты: выкачен сервис Google Play Games для ПК и инструменты для адаптации приложений.
Бета-тест пока что открыт только для Южной Кореи, Гонконга и Тайваня, впрочем в этом году Google обещают расширить список стран, так что со временем дойдет и до нас.
Чтобы получить понимание, как все это устроено и как подготовить свое приложение к запуску на ПК — подробная инструкция от Google на android.developers.
#android
Google
Google Play Games: Play games across mobile and PC
Seamless gaming across mobile and PC
Разработчик более 2 месяцев исправлял название приложения в Google Play 🛒
Материал на хабре (оригинал здесь) о негативном опыте использования Google Play: автор прошел все круги ада, потратив на исправление одной ошибки больше двух месяцев, и поделился впечатлениями от процесса.
Конечно, далеко не все из перечисленного непременно с вами произойдет, но почитать о специфике главного магазина Google лишним точно не будет.
#android
Материал на хабре (оригинал здесь) о негативном опыте использования Google Play: автор прошел все круги ада, потратив на исправление одной ошибки больше двух месяцев, и поделился впечатлениями от процесса.
Конечно, далеко не все из перечисленного непременно с вами произойдет, но почитать о специфике главного магазина Google лишним точно не будет.
#android
Хабр
«Ваше приложение нарушает правила Google Play»: сводки из ада
Для начала представлюсь тем, с кем мы незнакомы: я системный администратор на Linux и также много работаю с кодом, в основном для собственного удовольствия. Среди моих личных проектов есть и...
🔥5👍1
Пишем качественные юнит-тесты для iOS
Полезные рекомендации по написанию юнит-тестов на Swift: нейминг, настройка, фильтры, запуск и немного про XCTAssert
Здесь также блок документации по методам setUp() и tearDown(), которым как по мне в статье уделено недостаточно внимания
#ios
Полезные рекомендации по написанию юнит-тестов на Swift: нейминг, настройка, фильтры, запуск и немного про XCTAssert
Здесь также блок документации по методам setUp() и tearDown(), которым как по мне в статье уделено недостаточно внимания
#ios
SwiftLee
Getting started with Unit Tests in Swift
Get started and learn how to write unit tests to validate your code. Best practices help you to be more productive by writing better tests.
👍3
Что выбираешь?
Anonymous Poll
51%
RxJava2,Dagger2,DataBinding
49%
Другие доброкачественные новообразования кожи
This media is not supported in your browser
VIEW IN TELEGRAM
Minesweeper на Jetpack Compose 💣
Старый-добрый Сапер, известный многим еще с первых версий Windows, получил очередное исполнение — в этот раз на Jetpack Compose
Помимо стандартных функций игры, в этой версии добавлены светлая/темная темы, удобное масштабирование, тактильный отклик и красивые анимации
Посмотреть на реализацию иукрасть адаптировать пару идей можно здесь:
https://github.com/JayaSuryaT/minesweeper-j-compose
#android
Старый-добрый Сапер, известный многим еще с первых версий Windows, получил очередное исполнение — в этот раз на Jetpack Compose
Помимо стандартных функций игры, в этой версии добавлены светлая/темная темы, удобное масштабирование, тактильный отклик и красивые анимации
Посмотреть на реализацию и
https://github.com/JayaSuryaT/minesweeper-j-compose
#android
👍5
Как построить динамичный UI приложения на Json? 🤔
Конечно же, с помощью Jetpack Compose.
Материал на медиуме подробно рассказывает, как устроен этот процесс, а по итогу выясняется, что способ действительно работает.
Остается лишь вопрос "зачем?", но ответ есть — как минимум, этот метод позволяет запустить полноценный Server-Side Rendering: бэк отправляет Json-файл, клиент считывает его и отрисовывает динамический UI на устройстве.
#android
Конечно же, с помощью Jetpack Compose.
Материал на медиуме подробно рассказывает, как устроен этот процесс, а по итогу выясняется, что способ действительно работает.
Остается лишь вопрос "зачем?", но ответ есть — как минимум, этот метод позволяет запустить полноценный Server-Side Rendering: бэк отправляет Json-файл, клиент считывает его и отрисовывает динамический UI на устройстве.
#android
Medium
Jetpack Compose Enables JSON Defined View Layout
Making a more dynamic layout from the server payload
👍3
Flutter или Native — опыт разработчиков Ozon Tech
Команда мобильного приложения Ozon ушла в нативную разработку после года на Flutter. Почему — читайте в статье на хабре
Причины вкратце:
— Опасность остановки поддержки (гугл известны внезапными объявлениями технологий deprecated, и на фоне роста популярности KMM, Flutter может в скором времени стать одним из них)
— Несовершенство Dart (до сих пор завозят технологии, которые уже давно есть на Kotlin и Swift)
— Рендеринг UI (поведение некоторых визуальных компонентов Flutter отличается от принятого на каждой из платформ)
Подробнее — по ссылке
#flutter #crossplatform
Команда мобильного приложения Ozon ушла в нативную разработку после года на Flutter. Почему — читайте в статье на хабре
Причины вкратце:
— Опасность остановки поддержки (гугл известны внезапными объявлениями технологий deprecated, и на фоне роста популярности KMM, Flutter может в скором времени стать одним из них)
— Несовершенство Dart (до сих пор завозят технологии, которые уже давно есть на Kotlin и Swift)
— Рендеринг UI (поведение некоторых визуальных компонентов Flutter отличается от принятого на каждой из платформ)
Подробнее — по ссылке
#flutter #crossplatform
Хабр
Flutter vs Native: почему мы переходим с первого на второй
Привет, Хабр! Меня зовут Сергей, я занимаюсь мобильной разработкой 13 лет и недавно стал руководителем разработки мобильного приложения «Пункты выдачи заказов» в Ozon. Невольно став сместителем...
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядная демонстрация работы Hot reload на Flutter — догружаем файлы кода прямо в запущенную Dart Virtual Machine
#android #flutter
#android #flutter
😁9
Цикл подробных статей про корутины в Kotlin
Все мы очень любим корутины (так ведь?), поэтому сохраняйте этот список себе: цикл из 5 статей от основ CoroutineContext до отмены корутин с примерами и пояснениями
👉 1. CoroutineContext
👉 2. CoroutineScope
👉 3. Structured Concurrency
👉 4. Exception Handling
👉 5. Cancellation
#android
Все мы очень любим корутины (так ведь?), поэтому сохраняйте этот список себе: цикл из 5 статей от основ CoroutineContext до отмены корутин с примерами и пояснениями
👉 1. CoroutineContext
👉 2. CoroutineScope
👉 3. Structured Concurrency
👉 4. Exception Handling
👉 5. Cancellation
#android
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Анимированный Splash Screen для Android 🔃
С приходом Android 12 мы наконец получили полноценный API для создания кастомизированных экранов загрузки. Если еще не попробовали, то сейчас самое время разобраться и внедрить технологию в свое приложение
Пара ссылок, чтобы лучше вникнуть в тему: здесь подробная документация по использованию с android developers, а здесь статья с более наглядным пояснением на хабре
#android
С приходом Android 12 мы наконец получили полноценный API для создания кастомизированных экранов загрузки. Если еще не попробовали, то сейчас самое время разобраться и внедрить технологию в свое приложение
Пара ссылок, чтобы лучше вникнуть в тему: здесь подробная документация по использованию с android developers, а здесь статья с более наглядным пояснением на хабре
#android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Еще одна анимация загрузки, в этот раз для iOS
LiquidLoader — библиотека индикаторов загрузки. По умолчанию есть два варианта: круговой (GrowCircle) и линейный (GrowLine), но при желании можно покопаться и накастомить что-то свое
Реализация на Swift: https://github.com/yoavlt/LiquidLoader
#ios
LiquidLoader — библиотека индикаторов загрузки. По умолчанию есть два варианта: круговой (GrowCircle) и линейный (GrowLine), но при желании можно покопаться и накастомить что-то свое
Реализация на Swift: https://github.com/yoavlt/LiquidLoader
#ios