Siren - библиотека уведомляет пользователя о том, что вышла новая версия приложения и предлагает обновиться. Данные берет из App Store, есть три вида предупреждений, настраиваемые правила показа, проверка совместимости устройства, локализация на более чем 40 языков.
Библиотека на GitHub: https://github.com/ArtSabintsev/Siren
Платформа: iOS
⭐️: 3.9К
Библиотека на GitHub: https://github.com/ArtSabintsev/Siren
Платформа: iOS
⭐️: 3.9К
Flutter vs натив: почему мы переходим с первого на второй
Наступил момент, когда наш продукт из стартапа с документооборотом решил перерасти в долгоиграющий проект, бизнесу захотелось перейти от количественного к качественному: более нативного поведения и вообще, чтобы ставили только пять звёзд. Как убедить бизнес, что нужно всё переписать на Native? И вообще надо ли? А что будет с командой? Захотят ли спецы на Flutter возвращаться на старый добрый Native-стек?
Статья 🇷🇺: https://apptractor.ru/fltntv
Платформа: разработка
⬆️: +19
Наступил момент, когда наш продукт из стартапа с документооборотом решил перерасти в долгоиграющий проект, бизнесу захотелось перейти от количественного к качественному: более нативного поведения и вообще, чтобы ставили только пять звёзд. Как убедить бизнес, что нужно всё переписать на Native? И вообще надо ли? А что будет с командой? Захотят ли спецы на Flutter возвращаться на старый добрый Native-стек?
Статья 🇷🇺: https://apptractor.ru/fltntv
Платформа: разработка
⬆️: +19
👍3👎1
Чему мы научились, используя KMM для iOS
В этой статье я рассказал о некоторых основных задачах и проблемах, с которыми мы столкнулись при работе с KMM на iOS. Не обо всем, но вполне достаточно, чтобы дать вам представление о KMM. Несмотря на проблемы и более длительное, чем ожидалось, время разработки, MVP был успешным, и у нас был рабочий модуль KMM, который использовался на двух платформах сразу. Мы продолжали работать с КММ, и теперь он с большим успехом используется в продакшене. KMM все еще может быть в ранней стадии разработки, но если вы проявите упорство, несмотря на все трудности, вы, безусловно, сможете использовать его. Моей целью при изложении проблем было не напугать вас, а поделиться с вами трудностями использования KMM в сегодняшнем состоянии.
Статья 🇷🇺: https://apptractor.ru/kmmios
Платформа: iOS/кроссплатформа
👋: 688
В этой статье я рассказал о некоторых основных задачах и проблемах, с которыми мы столкнулись при работе с KMM на iOS. Не обо всем, но вполне достаточно, чтобы дать вам представление о KMM. Несмотря на проблемы и более длительное, чем ожидалось, время разработки, MVP был успешным, и у нас был рабочий модуль KMM, который использовался на двух платформах сразу. Мы продолжали работать с КММ, и теперь он с большим успехом используется в продакшене. KMM все еще может быть в ранней стадии разработки, но если вы проявите упорство, несмотря на все трудности, вы, безусловно, сможете использовать его. Моей целью при изложении проблем было не напугать вас, а поделиться с вами трудностями использования KMM в сегодняшнем состоянии.
Статья 🇷🇺: https://apptractor.ru/kmmios
Платформа: iOS/кроссплатформа
👋: 688
Forwarded from Код Воробья для iOS разработчиков
Как устроен системный калькулятор.
Приложение написано на сценах. Root-контроллер называется
Клавиатуру сделали обычный вью и назвали
#ViewHierarchy
Приложение написано на сценах. Root-контроллер называется
DisplayViewController
. Лейбл с введенными цифрами обернули в контейнер DisplayView
и добавили жесты LongPress, Swipe и Tap.Клавиатуру сделали обычный вью и назвали
CalculatorKeypadView
. Кнопки сделаны как UIButton. Все кнопки - объекты одного класса, даже измененный 0. Контейнер лейаутится через AutoLayout, а вот сетку с кнопками расставили с помощью фреймов.#ViewHierarchy
👍4
SpotiFlyer - музыкальный загрузчик с поддержкой Spotify, Youtube, Gaana, Jio-Saavn и SoundCloud на Kotlin Multiplatform. Позволяет скачивать альбомы, отдельные треки, плейлисты и т.п. В настоящий момент поддерживается Android, Windows, Linux, MacOS и веб.
Проект на GitHub: https://github.com/Shabinder/SpotiFlyer
Платформа: Android/KMM
⭐️: 2.8К
Проект на GitHub: https://github.com/Shabinder/SpotiFlyer
Платформа: Android/KMM
⭐️: 2.8К
Принципы SOLID с (почти) реальными примерами на Java
Принципы SOLID — одни из старейших правил в мире программного обеспечения. Они позволяют нам писать поддерживаемый, читаемый, повторно используемый код. В этом тексте пример применения этих принципов из реальной жизни.
Статья 🇬🇧: https://apptractor.ru/solidjava
Платформа: программирование
👋: 790
Принципы SOLID — одни из старейших правил в мире программного обеспечения. Они позволяют нам писать поддерживаемый, читаемый, повторно используемый код. В этом тексте пример применения этих принципов из реальной жизни.
Статья 🇬🇧: https://apptractor.ru/solidjava
Платформа: программирование
👋: 790
💩2🔥1
Эволюция UI-тестов в iOS-приложении
Даша из Яндекс.Маркета рассказывает о том, как эволюционировал подход компании к к UI-тестам и, более конкретно, какие работы провели для их «улучшения» - почему решили избавиться от JSON-моков и как справились с этой задачей.
Статья 🇷🇺: https://apptractor.ru/uitstios
Платформа: iOS/тестирование
⬆️: +13
Даша из Яндекс.Маркета рассказывает о том, как эволюционировал подход компании к к UI-тестам и, более конкретно, какие работы провели для их «улучшения» - почему решили избавиться от JSON-моков и как справились с этой задачей.
Статья 🇷🇺: https://apptractor.ru/uitstios
Платформа: iOS/тестирование
⬆️: +13
This media is not supported in your browser
VIEW IN TELEGRAM
ReadabilityKit - извлекает превью для заданного URL-а. Может получать название, Title и Description страницы, изображение и видео, ключевые слова и дату публикации.
Библиотека на GitHub: https://github.com/exyte/ReadabilityKit
Платформа: iOS
⭐️: 767
Библиотека на GitHub: https://github.com/exyte/ReadabilityKit
Платформа: iOS
⭐️: 767
Accompanist — это группа библиотек, целью которых является дополнение Jetpack Compose функциями, которые обычно требуются разработчикам, но пока недоступны. Сейчас в Accompanist, например, есть Insets, System UI Controller, Pager, Placeholder, Navigation Animation, Swipe to Refresh и т.п.
Библиотека на GitHub: https://github.com/google/accompanist
Платформа: Android
⭐️: 4.1К
Библиотека на GitHub: https://github.com/google/accompanist
Платформа: Android
⭐️: 4.1К
4,5 года из жизни iOS-команды в пяти историях и одном техрадаре
Стас, лид мобильной разработки Туту.ру, рассказывает о технологиях и процессах разработки в компании. Часть решений может шокировать. Поехали!
Статья 🇷🇺: https://apptractor.ru/45tutu
Платформа: iOS
⬆️: +16
Стас, лид мобильной разработки Туту.ру, рассказывает о технологиях и процессах разработки в компании. Часть решений может шокировать. Поехали!
Статья 🇷🇺: https://apptractor.ru/45tutu
Платформа: iOS
⬆️: +16
👍1
Высокая производительность с идиоматическим Kotlin
Множество факторов формируют опыт наших пользователей. Как разработчик мобильных приложений, а также как технический руководитель, я понял, что ничто так не отталкивает пользователей, как плохо работающее приложение. Вот почему мы, как разработчики, должны сосредоточиться на постоянном улучшении этого параметра.
В этой статье содержится подробная информация о том:
1. Почему высокая производительность важна при создании программных продуктов
2. Обзор наиболее распространенных причин проблем с производительностью
3. Как измерить производительность
4. Как Kotlin может нам помочь создавать качественные продукты при помощи поддерживаемого, безопасного и выразительного идиоматического кода
Статья 🇬🇧: https://apptractor.ru/idmtktln
Платформа: Android
👋: 68
Множество факторов формируют опыт наших пользователей. Как разработчик мобильных приложений, а также как технический руководитель, я понял, что ничто так не отталкивает пользователей, как плохо работающее приложение. Вот почему мы, как разработчики, должны сосредоточиться на постоянном улучшении этого параметра.
В этой статье содержится подробная информация о том:
1. Почему высокая производительность важна при создании программных продуктов
2. Обзор наиболее распространенных причин проблем с производительностью
3. Как измерить производительность
4. Как Kotlin может нам помочь создавать качественные продукты при помощи поддерживаемого, безопасного и выразительного идиоматического кода
Статья 🇬🇧: https://apptractor.ru/idmtktln
Платформа: Android
👋: 68
👍2
iOS Conf SG — крупнейшая конференция iOS-разработчиков в Юго-Восточной Азии. Этот плейлист состоит из всех докладов, представленных спикерами на конференции 2022 года. Всего в нем 18 видео, среди тем - Использование возможностей конечных автоматов в Swift, IGListKit в 2022 году, VIP, а не VIPER, чистая архитектура Swift, Непрерывная доставка функций с помощью разработки приложений на основе сценариев, Оптимизация приложений с большим объемом изображений, Swift Concurrency под капотом, Создание и запуск современного SwiftUI SDK, Специальные эффекты с SwiftUI, Сохранение модульности с помощью диспетчера пакетов Swift.
Видео 🇬🇧: https://apptractor.ru/iosconfsg22
Платформа: iOS
Видео 🇬🇧: https://apptractor.ru/iosconfsg22
Платформа: iOS
👍4
Реактивное программирование или сопрограммы: между молотом и наковальней?
Существуют различные подходы к более эффективному использованию ресурсов. В этой статье мы сравним две концепции и рассмотрим примеры их реализации, а также определим преимущества и недостатки каждой. Эти концепции — реактивное программирование и сопрограммы.
Статья 🇷🇺: https://apptractor.ru/rctvcrt
Платформа: Kotlin/программирование
👋: 3
Существуют различные подходы к более эффективному использованию ресурсов. В этой статье мы сравним две концепции и рассмотрим примеры их реализации, а также определим преимущества и недостатки каждой. Эти концепции — реактивное программирование и сопрограммы.
Статья 🇷🇺: https://apptractor.ru/rctvcrt
Платформа: Kotlin/программирование
👋: 3
👍1
Maps Compose - долгожданный фирменный компонент Google Maps SDK для Jetpack Compose.
Библиотека на GitHub: https://github.com/googlemaps/android-maps-compose
Платформа: Android
⭐️: 396
Библиотека на GitHub: https://github.com/googlemaps/android-maps-compose
Платформа: Android
⭐️: 396
8 вещей, которые мы узнали, внедрив платежи в Android-приложение DoorDash
Эффективная реализация платежей в мобильном приложении требует пристального внимания к таким факторам, как способы оплаты, взаимодействие с пользователем и предотвращение мошенничества. Чрезвычайно важное значение мобильных платежей для бизнеса означает, что инженеры должны применять продуманный подход, предвидя все непредвиденные обстоятельства. В DoorDash мы обнаружили восемь основных факторов, которые помогают создать надежную и успешную систему мобильных платежей.
Статья 🇷🇺: https://apptractor.ru/8doordash
Платформа: Android
Эффективная реализация платежей в мобильном приложении требует пристального внимания к таким факторам, как способы оплаты, взаимодействие с пользователем и предотвращение мошенничества. Чрезвычайно важное значение мобильных платежей для бизнеса означает, что инженеры должны применять продуманный подход, предвидя все непредвиденные обстоятельства. В DoorDash мы обнаружили восемь основных факторов, которые помогают создать надежную и успешную систему мобильных платежей.
Статья 🇷🇺: https://apptractor.ru/8doordash
Платформа: Android
Делаем разделы UITableView с вложенными типами
В сегодняшней статье я покажу вам практический пример использования вложенных (nested) типов, создавая UITableView с несколькими разделами. Я собираюсь написать вики о Гарри Поттере, которая покажет пользователю некоторую основную информацию о персонажах, местах и классах Хогвартса. Итак, наш список будет состоять из трех разделов, каждый из которых будет содержать список элементов.
Статья 🇷🇺: https://apptractor.ru/nstdtblv
Платформа: iOS/Swift
👋: 218
В сегодняшней статье я покажу вам практический пример использования вложенных (nested) типов, создавая UITableView с несколькими разделами. Я собираюсь написать вики о Гарри Поттере, которая покажет пользователю некоторую основную информацию о персонажах, местах и классах Хогвартса. Итак, наш список будет состоять из трех разделов, каждый из которых будет содержать список элементов.
Статья 🇷🇺: https://apptractor.ru/nstdtblv
Платформа: iOS/Swift
👋: 218
👍2
Wizard's Pal - счетчик жизней для настольной игры.
Проект на GitHub: https://github.com/ignatovv/Wizards-pal
Платформа: iOS
⭐️: 1
Проект на GitHub: https://github.com/ignatovv/Wizards-pal
Платформа: iOS
⭐️: 1
Улучшение качества кода Android-приложений с помощью SonarQube и Gradle Detekt
Качество кода очень важно, и вы всегда должны пытаться оптимизировать вашу реализацию. В этой статье показаны два инструмента, которые можно комбинировать для достижения лучшего качества, особенно в приложениях для Android.
Статья 🇬🇧: https://apptractor.ru/cdqdrd
Платформа: Android
👋: 260
Качество кода очень важно, и вы всегда должны пытаться оптимизировать вашу реализацию. В этой статье показаны два инструмента, которые можно комбинировать для достижения лучшего качества, особенно в приложениях для Android.
Статья 🇬🇧: https://apptractor.ru/cdqdrd
Платформа: Android
👋: 260
Forwarded from Код Воробья для iOS разработчиков
Как устроено приложение Wallet
Сделали на сценах, а лейаут на фреймах. Рут контроллер называется
Каждую карточку поместили в контейнер
Чтобы управлять пространством сверху для тапа - эпл сделала переиспользуемый класс. Каждую карточку поместили в ещё один саб-контейнер с названием
#ViewHierarchy
Сделали на сценах, а лейаут на фреймах. Рут контроллер называется
PKPassGroupsViewController
. Главная вью UIStackView
, в неё поместили: заголовок Wallet, группу карточек, группу бонусных карт и футер.Каждую карточку поместили в контейнер
PKPassGroupView
. Внутри находится скрол-вью, которая отрабатывает жесты и является саб-контейнером карточки. Получается каждая карточка лежит на скрол-вью и управляется жестами на скролле 🤯. Понятия не имею как это работает.Чтобы управлять пространством сверху для тапа - эпл сделала переиспользуемый класс. Каждую карточку поместили в ещё один саб-контейнер с названием
WLEasyToHitCustomView
(переводится легко нажать). Возможно, связали контейнеры в родителе или через делегаты.#ViewHierarchy
🔥2