Лучший способ структурировать iOS-проект
Важно поддерживать структуру проекта в чистоте и порядке. Когда вы работаете над большим проектом с сотнями файлов в большой команде, вы хотите, чтобы вы и ваши товарищи могли найти все, что вам нужно, в течение нескольких секунд. Проект должен быть организован с самого начала, и все члены команды должны следовать той структуре, которая у вас есть, потому что некоторые разработчики могут уйти, а новые могут присоединиться.
Статья: https://apptractor.ru/info/articles/luchshiy-sposob-strukturirovat-ios-proekt.html
Платформа: iOS
Важно поддерживать структуру проекта в чистоте и порядке. Когда вы работаете над большим проектом с сотнями файлов в большой команде, вы хотите, чтобы вы и ваши товарищи могли найти все, что вам нужно, в течение нескольких секунд. Проект должен быть организован с самого начала, и все члены команды должны следовать той структуре, которая у вас есть, потому что некоторые разработчики могут уйти, а новые могут присоединиться.
Статья: https://apptractor.ru/info/articles/luchshiy-sposob-strukturirovat-ios-proekt.html
Платформа: iOS
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс за два дня
Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.
Ищем мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашаем в один из наших офисов в России и Беларуси, также нанимаем в международные хабы в Армении, Казахстане и Сербии.
Регистрация заканчивается 12 июня.
Подробности ищите здесь
Приходите на Weekend Offer Mobile 17–18 июня. Всего за 2 дня можно пройти все технические секции, пообщаться с нанимающими командами и получить офер.
Ищем мобильных разработчиков на iOS, Android и Flutter с опытом от 3 лет. Приглашаем в один из наших офисов в России и Беларуси, также нанимаем в международные хабы в Армении, Казахстане и Сербии.
Регистрация заканчивается 12 июня.
Подробности ищите здесь
💩5👍2
Dot Globe - глобус из точек на SceneKit и Metal. Применим в UIKit и SwiftUI, можно менять цвета, мерцание, размеры, включать и выключать частицы.
Dot Globe на GitHub: https://github.com/inventhq/dot-globe
Платформа: iOS
⭐️: 54
Dot Globe на GitHub: https://github.com/inventhq/dot-globe
Платформа: iOS
⭐️: 54
«Этот маленький остров меняет все» — опыт проектирования Live Activity в Lyft
Для нас Live Activities — это не просто новый виджет, мы рассматриваем его как совершенно новый способ получить удовольствие от поездки с Lyft на iOS.
Статья: https://apptractor.ru/info/articles/etot-malenkiy-ostrov-menyaet-vse-opyt-proektirovaniya-live-activity-v-lyft.html
Платформа: iOS/дизайн
Для нас Live Activities — это не просто новый виджет, мы рассматриваем его как совершенно новый способ получить удовольствие от поездки с Lyft на iOS.
Статья: https://apptractor.ru/info/articles/etot-malenkiy-ostrov-menyaet-vse-opyt-proektirovaniya-live-activity-v-lyft.html
Платформа: iOS/дизайн
This media is not supported in your browser
VIEW IN TELEGRAM
Jetpack Compose: HorizontalPager с PagerIndicator и бесконечной прокруткой
Пример реализации бесконечной листалки с индикатором на Jetpack Compose.
Статья: https://medium.com/@k.ibrushi/jetpack-compose-horizontalpager-with-pagerindicator-infinity-scroll-32f6e9357974
Платформа: Android
Пример реализации бесконечной листалки с индикатором на Jetpack Compose.
Статья: https://medium.com/@k.ibrushi/jetpack-compose-horizontalpager-with-pagerindicator-infinity-scroll-32f6e9357974
Платформа: Android
Forwarded from inDrive.Tech
🔍 Предложите идеи по улучшению безопасности и инклюзивности ride-hailing-сервисов на хакатоне inCode
inDrive организует международное соревнование для инженеров, у которых есть идеи, как сделать поездки ещё безопаснее и доступнее для пользователей.
Приглашаем технических специалистов со всего мира поучаствовать в хакатоне inCode. Соберите команду от 1 до 6 человек, бросьте вызов несправедливости и разделите призовой фонд в размере €16,000.
Выберите одно из трёх направлений:
• Улучшение безопасности поездок для пассажиров и водителей;
• Повышение доступности для людей с ограниченными возможностями;
• Создание своего идеального ride-hailing-сервиса.
➡️ Зарегистрируйтесь на inCode 2023
inDrive организует международное соревнование для инженеров, у которых есть идеи, как сделать поездки ещё безопаснее и доступнее для пользователей.
Приглашаем технических специалистов со всего мира поучаствовать в хакатоне inCode. Соберите команду от 1 до 6 человек, бросьте вызов несправедливости и разделите призовой фонд в размере €16,000.
Выберите одно из трёх направлений:
• Улучшение безопасности поездок для пассажиров и водителей;
• Повышение доступности для людей с ограниченными возможностями;
• Создание своего идеального ride-hailing-сервиса.
➡️ Зарегистрируйтесь на inCode 2023
Kamel - это библиотека асинхронной загрузки мультимедиа для Compose Multiplatform. Она предоставляет простой, настраиваемый и эффективный способ загрузки, кэширования, декодирования и отображения изображений в вашем приложении. По умолчанию для загрузки ресурсов используется клиент Ktor.
Kamel на GitHub: https://github.com/Kamel-Media/Kamel
Платформа: Android/кроссплатформа
⭐️: 220
Kamel на GitHub: https://github.com/Kamel-Media/Kamel
Платформа: Android/кроссплатформа
⭐️: 220
GitHub
GitHub - Kamel-Media/Kamel: Kotlin asynchronous media loading and caching library for Compose.
Kotlin asynchronous media loading and caching library for Compose. - GitHub - Kamel-Media/Kamel: Kotlin asynchronous media loading and caching library for Compose.
Исследуем выделения кучи в Android в jemalloc 'new'
Jemalloc 'new' - это распределитель кучи libc, представленный в Android 10. Несмотря на общее название с jemalloc и некоторые функции, его бэкенд сильно отличается. Публичных исследований на эту тему не так много. Более того, несмотря на появление распределителя scudo в Android 11, многие устройства все еще используют "новый" jemalloc, в том числе и Samsung Galaxy S23. По всем этим причинам статья на эту тему кажется актуальной.
Статья: https://www.synacktiv.com/publications/exploring-android-heap-allocations-in-jemalloc-new
Платформа: Android
Jemalloc 'new' - это распределитель кучи libc, представленный в Android 10. Несмотря на общее название с jemalloc и некоторые функции, его бэкенд сильно отличается. Публичных исследований на эту тему не так много. Более того, несмотря на появление распределителя scudo в Android 11, многие устройства все еще используют "новый" jemalloc, в том числе и Samsung Galaxy S23. По всем этим причинам статья на эту тему кажется актуальной.
Статья: https://www.synacktiv.com/publications/exploring-android-heap-allocations-in-jemalloc-new
Платформа: Android
Почему Swift так медленно компилирует этот код?
Я написал простую функцию быстрой сортировки из 6 строк для бенчмарка Rust (1.65), Swift 5.7 и Python3.11.
• Длина массива составляет 999,999.
• Rust скомпилировался примерно за минуту, а время выполнения составило 2 секунды
• Время работы Python3.11 составило 5 секунд
• А Swift... он компилируется уже больше часа
Когда я пробовал для 99,999 чисел, компиляция заняла 4:30 минуты, а время выполнения составило 0,51 мс (по сравнению с 0,29 мс у Python и 0,12 мс у Rust с компиляцией за 2 секунды)
Обсуждение на форуме Swift: https://forums.swift.org/t/why-is-swift-so-slow-timeout-in-compiling-this-code/61382/11
Платформа: iOS/Swift
Я написал простую функцию быстрой сортировки из 6 строк для бенчмарка Rust (1.65), Swift 5.7 и Python3.11.
• Длина массива составляет 999,999.
• Rust скомпилировался примерно за минуту, а время выполнения составило 2 секунды
• Время работы Python3.11 составило 5 секунд
• А Swift... он компилируется уже больше часа
Когда я пробовал для 99,999 чисел, компиляция заняла 4:30 минуты, а время выполнения составило 0,51 мс (по сравнению с 0,29 мс у Python и 0,12 мс у Rust с компиляцией за 2 секунды)
Обсуждение на форуме Swift: https://forums.swift.org/t/why-is-swift-so-slow-timeout-in-compiling-this-code/61382/11
Платформа: iOS/Swift
Swift Forums
Why is Swift so slow (timeout) in compiling this code?
I wrote a simple 6 lines quick sort function for benchmarking Rust (1.65), Swift 5.7 and Python3.11. The array length is 999,999. Rust compiled in about a minute and the runtime was 2 secs💨. Python3.11's runtime was 5 secs👀. And Swift... it's been compiling…
Food App SwiftUI - готовое приложение для доставки еды на SwiftUI, MVVM, Combine. Есть онбординг, категории, популярные блюда, рекомендации, просмотр конкретных карточек.
Food App на GitHub: https://github.com/YogeshPateliOS/FoodAppSwiftUI
Платформа: iOS
⭐️: 24
Food App на GitHub: https://github.com/YogeshPateliOS/FoodAppSwiftUI
Платформа: iOS
⭐️: 24
👍2
Как мы на 20% повысили скорость запуска приложения с помощью Baseline Profiles
В этой статье расскажу, как внедрить инструмент, оценить его работу на production приложении, немного погружу в историю компиляторов в целом и рассмотрю более продвинутые сценарии для генерации Profile.
Демонстрировать это я буду на нашем приложении Дринкит. Поехали!
Статья: https://habr.com/ru/companies/dododev/articles/739064/
Платформа: Android
В этой статье расскажу, как внедрить инструмент, оценить его работу на production приложении, немного погружу в историю компиляторов в целом и рассмотрю более продвинутые сценарии для генерации Profile.
Демонстрировать это я буду на нашем приложении Дринкит. Поехали!
Статья: https://habr.com/ru/companies/dododev/articles/739064/
Платформа: Android
Как найти причину любого сбоя в приложении для iOS
У вас когда-нибудь случались сбои, причину которых вы не могли определить и вообще не понимали, в чем дело? И никакое тестирование не позволяло воспроизвести проблему? Если да, то вы попали по адресу!
Впрочем, как вы увидите в этой статье, способность отлаживать сложные сбои не появляется мгновенно. Помните об этом: не существует волшебного инструмента, который вы запустите и который даст вам ожидаемый результат. Когда речь идет о сложных сбоях, вместо этого нам нужно подготовить нашу среду таким образом, чтобы эти проблемы при возникновении были более понятны, что поможет в их решении.
Статья: https://swiftrocks.com/how-to-solve-any-ios-crash-ever
Платформа: iOS
У вас когда-нибудь случались сбои, причину которых вы не могли определить и вообще не понимали, в чем дело? И никакое тестирование не позволяло воспроизвести проблему? Если да, то вы попали по адресу!
Впрочем, как вы увидите в этой статье, способность отлаживать сложные сбои не появляется мгновенно. Помните об этом: не существует волшебного инструмента, который вы запустите и который даст вам ожидаемый результат. Когда речь идет о сложных сбоях, вместо этого нам нужно подготовить нашу среду таким образом, чтобы эти проблемы при возникновении были более понятны, что поможет в их решении.
Статья: https://swiftrocks.com/how-to-solve-any-ios-crash-ever
Платформа: iOS
👍1
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
•
(iOS Ru)
Pet-проекты, обработка видео и когда менять компанию•
(iOS En)
How to use ChatGPT for learning how to code in Swift/SwiftUI•
(iOS En)
Telegram Dynamic Island Scroll Animation - Metaball Animation•
(iOS En)
Swift API Calls for Beginners•
(iOS En)
How to Make a Sticky Effect in SwiftUI•
(iOS En)
Tuist, the tool you missed•
(And Ru)
Приложение за 10 дней: MVVM, Kotlin, Firebase•
(And Ru)
Разработка в Японии: киберпанк в реальности•
(And En)
Now in Android: 84 - Top MAD things at I/O, Designing for Wear OS, InteractionSource, and more•
(And En)
Top 3 things to know in Modern Android Development at Google I/O '23•
(Crs En)
Build Your First Compose Multiplatform App (KMM)•
(Dev Ru)
Как AI начал помогать при выборе вещей на Lamoda•
(Dev Ru)
Podlodka #320: кому нужны многопоточные алгоритмы?Посмотрели какое-то другое интересное видео? Отправьте боту -> 🧑🏻💻
AppTractor
Pet-проекты, обработка видео и когда менять компанию
Гостем выпуска станет Александр Филимонов — старший iOS-разработчик компании Prequel. В выпуске обсудим: Как разработчик запускает собственные продукты Особенности работы с фото/видеоданными Как понять когда следует менять компанию
Material Files - открытый файловый менеджер с Material Design. Из особенностей - легковесность, чистота и безопасность, следование руководствам Material Design, поддержка архивов, темы, реализация на правильных вещах, включая Java NIO2 File API и LiveData.
Material Files на GitHub: https://github.com/zhanghai/MaterialFiles
Платформа: Android
⭐️: 3.4K
Material Files на GitHub: https://github.com/zhanghai/MaterialFiles
Платформа: Android
⭐️: 3.4K
👍1
Как я стал Android-разработчиком в 40 лет
Теперь я руководитель отдела мобильной разработки и отвечаю за совместную работу мобильных команд и архитектуру. Наряду с технической должностью я должен участвовать в различных задачах руководства.
Я снова вернулся на этап, когда у меня не так много времени писать код и учиться во время работы. Но мне всё равно нравится моя работа и она всё ещё достаточно техническая по своей природе, просто на более высоком уровне технических деталей.
Статья: https://habr.com/ru/companies/beeline_tech/articles/739104/
Платформа: Android
Теперь я руководитель отдела мобильной разработки и отвечаю за совместную работу мобильных команд и архитектуру. Наряду с технической должностью я должен участвовать в различных задачах руководства.
Я снова вернулся на этап, когда у меня не так много времени писать код и учиться во время работы. Но мне всё равно нравится моя работа и она всё ещё достаточно техническая по своей природе, просто на более высоком уровне технических деталей.
Статья: https://habr.com/ru/companies/beeline_tech/articles/739104/
Платформа: Android
Хабр
Как я стал Android-разработчиком в 40 лет
Начинать карьеру разработчика ПО в сорок лет не поздно. Однажды мне кто-то сказал: «Если в 35 лет ты всё ещё программист, то начинай искать другие варианты на вторую половину своей карьеры. Молодое...
👎2👍1
Нельзя просто взять и сделать нормальную адресную систему в приложении
Олды помнят, как ещё каких-то 10-15 лет назад заказывали пиццу по телефону, диктуя адрес операторам кол-центра. Мало кто тогда думал, что отсутствие подсказок адресов и карты на сайте с определением геолокации, а уж тем более в мобильном приложении, будет вызывать у нас реакцию «да сложно, что ли, нормальную карту сделать?».
Но вот мы здесь, рассказываем, как в Додо Пицце лишь недавно появилась уже привычная многим адресная система. Как так вышло — история долгая и не всем интересная. Скажу только, что переделывать и менять как-то работающее старое на новое в большой системе — тот ещё квест. В итоге нам пришлось зарыться достаточно глубоко во внутренности Dodo IS, чтобы можно было добавлять адреса с помощью карты. В этой статье расскажу, с чего мы начинали и как реализовали эту фичу в нашем iOS-приложении.
Статья: https://habr.com/ru/companies/dododev/articles/737800/
Платформа: iOS/разработка
Олды помнят, как ещё каких-то 10-15 лет назад заказывали пиццу по телефону, диктуя адрес операторам кол-центра. Мало кто тогда думал, что отсутствие подсказок адресов и карты на сайте с определением геолокации, а уж тем более в мобильном приложении, будет вызывать у нас реакцию «да сложно, что ли, нормальную карту сделать?».
Но вот мы здесь, рассказываем, как в Додо Пицце лишь недавно появилась уже привычная многим адресная система. Как так вышло — история долгая и не всем интересная. Скажу только, что переделывать и менять как-то работающее старое на новое в большой системе — тот ещё квест. В итоге нам пришлось зарыться достаточно глубоко во внутренности Dodo IS, чтобы можно было добавлять адреса с помощью карты. В этой статье расскажу, с чего мы начинали и как реализовали эту фичу в нашем iOS-приложении.
Статья: https://habr.com/ru/companies/dododev/articles/737800/
Платформа: iOS/разработка
LeetCode - сайт, содержащий множество практических задач по алгоритмам. Большинство из них - это реальные вопросы с собеседовании в Google, Facebook, LinkedIn, Apple и т.д. В этом репозитории LeetCode by Swift представлены решения задач на Swift (более 400 из примерно 1000), стиль кода строго соответствует RayWenderlich Swift Style Guide.
LeetCode by Swift на GitHub: https://github.com/soapyigu/LeetCode-Swift
Платформа: iOS
⭐️: 4.6K
LeetCode by Swift на GitHub: https://github.com/soapyigu/LeetCode-Swift
Платформа: iOS
⭐️: 4.6K
Стала доступна бета Xcode 15
• Xcode 15 теперь на 50% меньше в Mac App Store, с возможностью загрузки симуляторов для всех платформ
• Проекты собираются быстрее благодаря улучшениям в компиляторе и совершенно новому компоновщику
• Ассеты локализации упорядочены в новом каталоге строк, что дает вам централизованный способ их просмотра и обновления
• Предварительные просмотры Xcode стали проще в использовании и теперь работают в SwiftUI, UIKit и AppKit
• Новая интерактивная временная шкала поможет вам в разработке и проектировании виджетов
Новость: https://apptractor.ru/info/news/stala-dostupna-beta-xcode-15.html
Платформа: iOS
• Xcode 15 теперь на 50% меньше в Mac App Store, с возможностью загрузки симуляторов для всех платформ
• Проекты собираются быстрее благодаря улучшениям в компиляторе и совершенно новому компоновщику
• Ассеты локализации упорядочены в новом каталоге строк, что дает вам централизованный способ их просмотра и обновления
• Предварительные просмотры Xcode стали проще в использовании и теперь работают в SwiftUI, UIKit и AppKit
• Новая интерактивная временная шкала поможет вам в разработке и проектировании виджетов
Новость: https://apptractor.ru/info/news/stala-dostupna-beta-xcode-15.html
Платформа: iOS
Первый взгляд на разработку для visionOS
Рекламная Статья Apple с мнением разработчиков, уже попробовавших разработку для visionOS. Так как все, в основном, работает с уже достпуными фреймворками, проблем в создании новых приложений и игр, видимо, будет немного.
Перевод: https://apptractor.ru/info/articles/pervyy-vzglyad-na-razrabotku-dlya-visionos.html
Платформа: iOS
Перевод: https://apptractor.ru/info/articles/pervyy-vzglyad-na-razrabotku-dlya-visionos.html
Платформа: iOS
ADB Enhanced - это “швейцарский армейский нож” для тестирования и Android-разработки. Это обертка вокруг adb, а не замена. Предоставляет интерфейс командной строки для запуска различных сценариев, таких как поворот экрана, режим экономии батареи, режим экономии данных, doze режим, предоставление/отмена разрешений.
ADB Enhanced на GitHub: https://github.com/ashishb/adb-enhanced
Платформа: Android
⭐️: 1K
ADB Enhanced на GitHub: https://github.com/ashishb/adb-enhanced
Платформа: Android
⭐️: 1K
👍1