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
This media is not supported in your browser
VIEW IN TELEGRAM
BubbleTabBar - нижнее меню с анимацией. Есть версия для iOS и для Android (от разных авторов).
Для iOS: https://github.com/Cuberto/bubble-icon-tabbar
Для Android: https://github.com/akshay2211/BubbleTabBar
⭐️: 998 и 452 соответственно
Для iOS: https://github.com/Cuberto/bubble-icon-tabbar
Для Android: https://github.com/akshay2211/BubbleTabBar
⭐️: 998 и 452 соответственно
🔥2
Вышел стабильный Compose 1.1
Вышла стабильная версия Jetpack Compose 1.1. Этот выпуск содержит новые функции, такие как улучшенная обработка фокуса, изменение размера элемента при касании, кэширование ImageVector и поддержка растягивания прокрутки в Android 12. Compose 1.1 также переводит ряд ранее экспериментальных API в стабильные и поддерживает более новые версии Kotlin. Google уже обновил примеры кода, кодлабы и библиотеку Accompanist для работы с Compose 1.1.
Анонс: https://apptractor.ru/cmps11
Платформа: Android
Наш перевод кодлабы "Основы Jetpack Compose": https://apptractor.ru/cmpscdlb
Интересное "SwiftUI против Jetpack Compose: почему Android выигрывает не напрягаясь": https://apptractor.ru/swftcmps
Вышла стабильная версия Jetpack Compose 1.1. Этот выпуск содержит новые функции, такие как улучшенная обработка фокуса, изменение размера элемента при касании, кэширование ImageVector и поддержка растягивания прокрутки в Android 12. Compose 1.1 также переводит ряд ранее экспериментальных API в стабильные и поддерживает более новые версии Kotlin. Google уже обновил примеры кода, кодлабы и библиотеку Accompanist для работы с Compose 1.1.
Анонс: https://apptractor.ru/cmps11
Платформа: Android
Наш перевод кодлабы "Основы Jetpack Compose": https://apptractor.ru/cmpscdlb
Интересное "SwiftUI против Jetpack Compose: почему Android выигрывает не напрягаясь": https://apptractor.ru/swftcmps
👍2
Compose Navigation Reimagined - небольшая и простая, но полноценная и настраиваемая навигационная библиотека для Jetpack Compose. Из преимуществ - полная безопасность типов, реставрация состояния, вложенная навигация с независимыми обратными стеками, собственный жизненный цикл, сохраненное состояние и модели просмотра для каждой записи в бэкстеке, анимированные переходы, логика навигации может быть легко перемещена в ViewModel, никаких компоновщиков, никаких обязательных суперклассов для composable, может использоваться для управления диалогами.
Библиотека на GitHub: https://github.com/olshevski/compose-navigation-reimagined
Платформа: Android
⭐️: 82
Библиотека на GitHub: https://github.com/olshevski/compose-navigation-reimagined
Платформа: Android
⭐️: 82
➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинькофф Бизнеса и еще трех проектов.
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/onedayoffer-mobile
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/onedayoffer-mobile
Видео (и аудио) этой недели
• Неожиданные результаты в ожидаемых A/B-тестах
• Видео iOS Community Meetup
• Видео iOS Conf SG 2022
• Стейт-машины в iOS
• Специальные эффекты в SwiftUI: размытие, смешивание и др.
• Авторефакторинг и View Binding
• Эти инструменты улучшают мои приложения
• Podlodka #254: антивирусы
Есть свое видео или смотрели что-то интересное? Напишите @lbogolubov!
• Неожиданные результаты в ожидаемых A/B-тестах
• Видео iOS Community Meetup
• Видео iOS Conf SG 2022
• Стейт-машины в iOS
• Специальные эффекты в SwiftUI: размытие, смешивание и др.
• Авторефакторинг и View Binding
• Эти инструменты улучшают мои приложения
• Podlodka #254: антивирусы
Есть свое видео или смотрели что-то интересное? Напишите @lbogolubov!
AppTractor
Неожиданные результаты в ожидаемых A/B-тестах
Как в Avito получили неожиданный результат в довольно стандартном A/B-тесте.
This media is not supported in your browser
VIEW IN TELEGRAM
Tuist - инструмент командной строки, который помогает создавать и поддерживать структуры модульных Xcode-проектов для командной работы. Его основная функция — генерация Xcode-проектов из специальных файлов с описанием проекта в удобном формате, Tuist синхронизирует структуру Xcode-проекта с иерархией файлов на диске. От аналогов Tuist выгодно отличается способом описания проекта — всё на Swift, как и положено, с автодополнением и прочими благами IDE. Ещё одно важное преимущество Tuist — кастомные хелперы, которые позволяют расширять его возможности и переиспользовать код в манифестах.
Проект на GitHub: https://github.com/tuist/tuist
Статья: https://apptractor.ru/tstios
Платформа: iOS
⭐️: 2.4К
Проект на GitHub: https://github.com/tuist/tuist
Статья: https://apptractor.ru/tstios
Платформа: iOS
⭐️: 2.4К
👍1
6 алгоритмов, которые должен знать каждый разработчик
Я разработчик, и вы должны знать, что я не большой фанат структур данных и алгоритмов. Если вы такой же, не переживайте, после работы над многими проектами (маленькими и большими) я обнаружил шесть важных алгоритмов, которые должен знать каждый разработчик, и эти шесть почти всегда решат любую проблему в вашей разработке.
Что это за 6 значимых алгоритмов?
1. Сортировки
2. Поиск
3. Динамическое программирование
4. Рекурсия
5. Разделяй и властвуй
6. Хэширование
Статья 🇷🇺: https://apptractor.ru/6algrtm
Платформа: программирование
👋: 1.8K
Я разработчик, и вы должны знать, что я не большой фанат структур данных и алгоритмов. Если вы такой же, не переживайте, после работы над многими проектами (маленькими и большими) я обнаружил шесть важных алгоритмов, которые должен знать каждый разработчик, и эти шесть почти всегда решат любую проблему в вашей разработке.
Что это за 6 значимых алгоритмов?
1. Сортировки
2. Поиск
3. Динамическое программирование
4. Рекурсия
5. Разделяй и властвуй
6. Хэширование
Статья 🇷🇺: https://apptractor.ru/6algrtm
Платформа: программирование
👋: 1.8K
👍1
Forwarded from Mobile Development by AppTractor
This media is not supported in your browser
VIEW IN TELEGRAM
Менять работу не страшно, когда всё взвесишь
Skyeng ищет мобильных разработчиков уровня senior и middle+. На удалёнку или в московский офис. Сейчас в команду можно попасть за 2 дня: без нудных собеседований, долгих общений с эйчарами и тестовых заданий. Два интервью по полтора часа: техническое и с руководителем команды.
Ребята провели более 40 независимых бесед и узнали, что ценят и с какими трудностями сталкиваются мобильные разработчики, чтобы вы прошли тест и сравнили своё текущее место с работой в Skyeng. Тот самый случай, когда размах бренда и красивые строки в Линкедине — не единственное преимущество.
Кликайте, если вы Android-разработчик
Кликайте, если вы iOS-разработчик
Ещё Skyeng предлагает бонус, если вы посоветуете друзей: 100 000 рублей за друга мобильного разработчика уровня сеньор и мидл+
Skyeng ищет мобильных разработчиков уровня senior и middle+. На удалёнку или в московский офис. Сейчас в команду можно попасть за 2 дня: без нудных собеседований, долгих общений с эйчарами и тестовых заданий. Два интервью по полтора часа: техническое и с руководителем команды.
Ребята провели более 40 независимых бесед и узнали, что ценят и с какими трудностями сталкиваются мобильные разработчики, чтобы вы прошли тест и сравнили своё текущее место с работой в Skyeng. Тот самый случай, когда размах бренда и красивые строки в Линкедине — не единственное преимущество.
Кликайте, если вы Android-разработчик
Кликайте, если вы iOS-разработчик
Ещё Skyeng предлагает бонус, если вы посоветуете друзей: 100 000 рублей за друга мобильного разработчика уровня сеньор и мидл+
💩1
Dart, Flutter и кроссплатформа: небольшой разбор на практике
Кто-нибудь пробовал использовать Dart/Flutter как на клиенте на нескольких платформах, так и в качестве сервера? Кто-то, конечно. пробовал, хотя далеко не каждый за этим приходил к Flutter. Я на своём pet-проекте провёл такой эксперимент, и хотел бы поделиться результатами и выводами.
Статья 🇷🇺: https://apptractor.ru/drtprct
Платформа: кроссплатформа
⬆️: +19
Кто-нибудь пробовал использовать Dart/Flutter как на клиенте на нескольких платформах, так и в качестве сервера? Кто-то, конечно. пробовал, хотя далеко не каждый за этим приходил к Flutter. Я на своём pet-проекте провёл такой эксперимент, и хотел бы поделиться результатами и выводами.
Статья 🇷🇺: https://apptractor.ru/drtprct
Платформа: кроссплатформа
⬆️: +19