Старый, но все еще полезный репозиторий с 30 учебными проектами для iOS-разработчика. В нем рассматриваются вопросы использования UIKit, UIScrollView, UITableView, UICollectionView, CAAnimations, Local Notification, MapKit, Contact и Core ML, Core Data, открытых фреймворков , TDD, XCTest и многого другого.
Swift 30 Projects на GitHub: https://github.com/soapyigu/Swift-30-Projects
Платформа: iOS
⭐️: 7.8K
Swift 30 Projects на GitHub: https://github.com/soapyigu/Swift-30-Projects
Платформа: iOS
⭐️: 7.8K
Откройте для себя Journaling Suggestions API
Journaling Suggestions - это визуальный интерфейс подборщика для iPhone-приложений. В нем отображаются личные события, происходящие в жизни человека, например место, которое он посетил, человек, с которым он общался, фотография в его библиотеке или песня, которую он постоянно играет. Например, если ваше приложение способствует написанию личных текстов, отобразите пикер, чтобы дать людям идеи для их творческого контента. Когда кто-то выбирает предложение из подборщика, система предоставляет вашему приложению подробную информацию об этом событии. Например, приложение для ведения дневника использует эти сведения для отображения начала новой записи в дневнике о выбранном предложении.
Узнайте, как новый Journaling Suggestions API может помочь людям размышлять о маленьких моментах и важных событиях в их жизни с помощью вашего приложения, при этом защищая их конфиденциальность. Узнайте, как использовать API для получения ассетов и метаданных для предложений по журналированию, вызова пикера в верхней части приложения, сохранения предложенного контента и многого другого.
Видео: https://developer.apple.com/videos/play/tech-talks/111384/
Платформа: iOS
Journaling Suggestions - это визуальный интерфейс подборщика для iPhone-приложений. В нем отображаются личные события, происходящие в жизни человека, например место, которое он посетил, человек, с которым он общался, фотография в его библиотеке или песня, которую он постоянно играет. Например, если ваше приложение способствует написанию личных текстов, отобразите пикер, чтобы дать людям идеи для их творческого контента. Когда кто-то выбирает предложение из подборщика, система предоставляет вашему приложению подробную информацию об этом событии. Например, приложение для ведения дневника использует эти сведения для отображения начала новой записи в дневнике о выбранном предложении.
Узнайте, как новый Journaling Suggestions API может помочь людям размышлять о маленьких моментах и важных событиях в их жизни с помощью вашего приложения, при этом защищая их конфиденциальность. Узнайте, как использовать API для получения ассетов и метаданных для предложений по журналированию, вызова пикера в верхней части приложения, сохранения предложенного контента и многого другого.
Видео: https://developer.apple.com/videos/play/tech-talks/111384/
Платформа: iOS
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии
Android-разработчик RuStore Анатолий Гусев расскажет, как приготовить систему «холодных» конфигов для большого Android-приложения, построенного на многомодульной архитектуре. Под «холодными» конфигами здесь подразумеваются настройки приложения, которые нужно делать локально на девайсе без необходимости загружать их из сети.
Статья: https://habr.com/ru/companies/vk/articles/777874/
Платформа: Android
Android-разработчик RuStore Анатолий Гусев расскажет, как приготовить систему «холодных» конфигов для большого Android-приложения, построенного на многомодульной архитектуре. Под «холодными» конфигами здесь подразумеваются настройки приложения, которые нужно делать локально на девайсе без необходимости загружать их из сети.
Статья: https://habr.com/ru/companies/vk/articles/777874/
Платформа: Android
Compose Preference - реализация экрана настроек на Jetpack Compose Material 3. Есть множество категорий (чекбоксы, списки, множественный выбор и т.п.), темы.
Compose Preference на GitHub: https://github.com/zhanghai/ComposePreference
Платформа: Android
⭐️: 38
Compose Preference на GitHub: https://github.com/zhanghai/ComposePreference
Платформа: Android
⭐️: 38
👍1
Как я использую мутационное тестирование для поддержки хорошего покрытия тестами
Говоря простым языком, мутационное тестирование подразумевает изменение рабочего кода и последующий запуск тестов. Если после этого изменения происходит сбой, то обычно это условие покрывается тестами. Однако если все тесты проходят, то, скорее всего, для этого условия тоже не хватает тестового случая.
Статья: https://apptractor.ru/info/articles/kak-ya-ispolzuyu-mutatsionnoe-testirovanie-dlya-podderzhki-horoshego-pokrytiya-testami.html
Платформа: тестирование
Говоря простым языком, мутационное тестирование подразумевает изменение рабочего кода и последующий запуск тестов. Если после этого изменения происходит сбой, то обычно это условие покрывается тестами. Однако если все тесты проходят, то, скорее всего, для этого условия тоже не хватает тестового случая.
Статья: https://apptractor.ru/info/articles/kak-ya-ispolzuyu-mutatsionnoe-testirovanie-dlya-podderzhki-horoshego-pokrytiya-testami.html
Платформа: тестирование
❤1
iOS-разработка становится сложнее? - обсуждение на Reddit
Прекрасное обсуждение - становится ли iOS-разработка сложнее? Для автора - да, но не все с ним согласны.
Обзор: https://apptractor.ru/info/articles/ios-razrabokta-stanovitsya-slozhnee-obsuzhdenie-na-reddit.html
Платформа: iOS
Прекрасное обсуждение - становится ли iOS-разработка сложнее? Для автора - да, но не все с ним согласны.
Обзор: https://apptractor.ru/info/articles/ios-razrabokta-stanovitsya-slozhnee-obsuzhdenie-na-reddit.html
Платформа: iOS
👍3
Aespa - это надежная и интуитивно понятная библиотека Swift для захвата видео и фотографий, созданная с упором на простоту настройки и использования. Она разработана так, чтобы ею было легко пользоваться как начинающим, так и среднего опыта разработчикам. Если вы только начинаете записывать видео на iOS или хотите упростить существующую настройку камеры, Aespa может стать идеальным вариантом для вашего проекта.
Фичи:
• Суперпростота в использовании
• Отказ от скучных настроек для сессии и альбома
• Предлагайте необходимые предустановки и настройки
• Комплексная обработка ошибок
• Больше не нужны делегаты
• Поддержка Combine
• Автоматизированное управление системными разрешениями
• Бесшовный захват изображений и видео в рамках одного сеанса предварительного просмотра.
• Потокобезопасный.
•Поддержка SPM
Aespa на GitHub: https://github.com/enebin/Aespa
Платформа: iOS
⭐️: 26
Фичи:
• Суперпростота в использовании
• Отказ от скучных настроек для сессии и альбома
• Предлагайте необходимые предустановки и настройки
• Комплексная обработка ошибок
• Больше не нужны делегаты
• Поддержка Combine
• Автоматизированное управление системными разрешениями
• Бесшовный захват изображений и видео в рамках одного сеанса предварительного просмотра.
• Потокобезопасный.
•Поддержка SPM
Aespa на GitHub: https://github.com/enebin/Aespa
Платформа: iOS
⭐️: 26
Интегрируем Rust в Android-приложение
Есть некоторая информация, предоставленная Google, но она сложна для понимания новичком. Цель этого пошагового руководства — предоставить простое, но эффективное руководство по интеграции кода Rust в разработку для Android. Никаких предварительных знаний C или C++ или JNI не требуется.
Статья: https://apptractor.ru/info/articles/integriruem-rust-v-android-prilozhenie.html
Платформа: Android
Есть некоторая информация, предоставленная Google, но она сложна для понимания новичком. Цель этого пошагового руководства — предоставить простое, но эффективное руководство по интеграции кода Rust в разработку для Android. Никаких предварительных знаний C или C++ или JNI не требуется.
Статья: https://apptractor.ru/info/articles/integriruem-rust-v-android-prilozhenie.html
Платформа: Android
👍3
Google Generative AI Sample - пример приложения для Android, который демонстрирует, как использовать современные генеративные модели ИИ (например, Gemini) для создания функций и приложений на базе ИИ.
Чтобы опробовать этот пример приложения, вам необходимо использовать последнюю стабильную версию Android Studio. Однако если вы хотите получить последние проверки линтера и функции производительности для ИИ, используйте последнюю предварительную версию Android Studio.
Google Generative AI Sample на GitHub: https://github.com/google/generative-ai-android/tree/main/generativeai-android-sample
Платформа: Android
⭐️: 34
Чтобы опробовать этот пример приложения, вам необходимо использовать последнюю стабильную версию Android Studio. Однако если вы хотите получить последние проверки линтера и функции производительности для ИИ, используйте последнюю предварительную версию Android Studio.
Google Generative AI Sample на GitHub: https://github.com/google/generative-ai-android/tree/main/generativeai-android-sample
Платформа: Android
⭐️: 34
Символизация логов сбоев с помощью Xcode
Для разработчика очень важно определить точную ошибку в коде и убедиться, что вы сможете исправить сбой, который потенциально может затронуть многих пользователей вашего приложения.
Статья: https://apptractor.ru/info/articles/simvolizatsiya-logov-sboev-s-pomoschyu-xcode.html
Платформа: iOS
Для разработчика очень важно определить точную ошибку в коде и убедиться, что вы сможете исправить сбой, который потенциально может затронуть многих пользователей вашего приложения.
Статья: https://apptractor.ru/info/articles/simvolizatsiya-logov-sboev-s-pomoschyu-xcode.html
Платформа: iOS
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Мой опыт прохождения собеседования в Google
Как и большинство инженеров-программистов, получить работу в Google было моей мечтой на протяжении многих лет. Google славится своей инженерной культурой, сложными задачами и инновационными технологиями. Возможность работать в такой влиятельной компании рядом с лучшими умами в отрасли была для меня главным стимулом.
Статья: https://apptractor.ru/info/articles/moy-opyt-prohozhdeniya-sobesedovaniya-v-google.html
Платформа: собеседования
Как и большинство инженеров-программистов, получить работу в Google было моей мечтой на протяжении многих лет. Google славится своей инженерной культурой, сложными задачами и инновационными технологиями. Возможность работать в такой влиятельной компании рядом с лучшими умами в отрасли была для меня главным стимулом.
Статья: https://apptractor.ru/info/articles/moy-opyt-prohozhdeniya-sobesedovaniya-v-google.html
Платформа: собеседования
This media is not supported in your browser
VIEW IN TELEGRAM
ChatGPT 4 Xcode - этот проект создает расширение для редактора Xcode, позволяющее разработчику использовать СhatGPT от OpenAI или локальную LLM для своего кода. С использованием ИИ появляется возможность автоматически рефакторить код, преобразовывать json-файл в swift-код, добавлять комментарии, создавать юнит-тесты, объяснять код.
ChatGPT 4 Xcode на GitHub: https://github.com/JackieQi/XcodeGPT
Платформа: iOS
⭐️: 4
ChatGPT 4 Xcode на GitHub: https://github.com/JackieQi/XcodeGPT
Платформа: iOS
⭐️: 4
🔥2
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
(iOS Ru)
xcconfig: интеграция в проект, валидация и подключение к Tuist•
(iOS Ru)
Объединяем Combine и Swift Concurrency•
(iOS Ru)
SwiftData как замена CoreData: глубокое погружение•
(iOS Ru)
Маслины и грабли: все, что вам нужно знать о разработке продукта полностью на SwiftUI•
(iOS En)
Implementing Drag Gestures In Xcode 15•
(iOS En)
How to Answer iOS Interview Questions Like a Pro•
(iOS En)
App Localizations•
(And Ru)
Android SDK Extensions — новые фичи на старых Android•
(And Ru)
Разработка для нестандартных устройств•
(And Ru)
Мок-собеседование по Android System Design•
(And En)
Now in Android: 97 - Gemini, AICore, ML Kit, Android Studio Hedgehog, and more!•
(And En)
Detecting faces and landmarks - ML on Android with MediaPipe•
(And En)
Should You Use a Navigation Library in Jetpack Compose?•
(And En)
Full Guide to Multiple Back Stacks in Jetpack Compose - Android Studio Tutorial•
(Crs Ru)
Многомодульность на Flutter или как не выстрелить себе в ногу•
(Dev Ru)
Как формировать топовые команды•
(Dev Ru)
Ozon Tech Community Techdoc MeetupКак обычно - поставьте 👍 и поделитесь подборкой!
AppTractor
xcconfig: интеграция в проект, валидация и подключение к Tuist
Рассказываю как удобно управлять Build Settings, если у вас 150 таргетов — с помощью xcconfig.
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Android-PiP - библиотека для Android, которая помогает использовать режим "картинка в картинке". В репозитории также есть пример приложения, показывающий, как использовать библиотеку.
Android-PiP на GItHub: https://github.com/mohsenoid/Android-PiP
Платформа: Android
⭐️: 11
Android-PiP на GItHub: https://github.com/mohsenoid/Android-PiP
Платформа: Android
⭐️: 11
👍1
Как управлять сложностью состояния — Сергей Опивалов
Сергей Опивалов, Senior Software Engineer в Gradle, на весеннем Мобиусе сделал доклад об управлении сложностью состояния. Я поговорил с Сергеем и обсудил возможности предлагаемого им решения.
Интервью: https://apptractor.ru/info/interview/kak-upravlyat-slozhnostyu-sostoyaniya-sergey-opivalov.html
Платформа: Android/архитектура
Сергей Опивалов, Senior Software Engineer в Gradle, на весеннем Мобиусе сделал доклад об управлении сложностью состояния. Я поговорил с Сергеем и обсудил возможности предлагаемого им решения.
Интервью: https://apptractor.ru/info/interview/kak-upravlyat-slozhnostyu-sostoyaniya-sergey-opivalov.html
Платформа: Android/архитектура
SwiftUI: Разбираемся с identity на примере переходов
Концепция идентификации (identity) в SwiftUI не так проста, как могло бы показаться на первый взгляд. Один из лучших способов разобраться в ней — понять роль идентичности в переходах (transitions).
В SwiftUI идентификация является ключом к пониманию работы системы рендеринга. Идентификатор View говорит SwiftUI о том, какие из значений этого View соответствуют одному и тому же отрисованному представлению на протяжении его жизненного цикла. Поэтому идентификация сильно влияет на корректность, производительность и, как мы увидим, на переходы.
Перевод: https://habr.com/ru/companies/otus/articles/780142/
Платформа: iOS
Концепция идентификации (identity) в SwiftUI не так проста, как могло бы показаться на первый взгляд. Один из лучших способов разобраться в ней — понять роль идентичности в переходах (transitions).
В SwiftUI идентификация является ключом к пониманию работы системы рендеринга. Идентификатор View говорит SwiftUI о том, какие из значений этого View соответствуют одному и тому же отрисованному представлению на протяжении его жизненного цикла. Поэтому идентификация сильно влияет на корректность, производительность и, как мы увидим, на переходы.
Перевод: https://habr.com/ru/companies/otus/articles/780142/
Платформа: iOS
Хабр
SwiftUI: Разбираемся с identity на примере переходов
Концепция идентификации (identity) в SwiftUI не так проста, как могло бы показаться на первый взгляд. Один из лучших способов разобраться в ней — понять роль идентичности в переходах (transitions). В...
Как структурировать свой Swift-код
Приходилось ли вам когда-нибудь возвращаться к проекту и находить его неряшливым? Все в нем беспорядочно и неорганизованно. Если вы уже давно занимаетесь программированием, вы, вероятно, прошли через это, и мы можем понять друг друга. Но даже если нет, эта статья поможет вам в дальнейшем писать хорошо организованный код. Позвольте представить вам метод, который я называю Код Бургера (Burger Code).
Статья: https://apptractor.ru/develop/coding/kak-strukturirovat-svoy-swift-kod.html
Платформа: iOS/программирование
Приходилось ли вам когда-нибудь возвращаться к проекту и находить его неряшливым? Все в нем беспорядочно и неорганизованно. Если вы уже давно занимаетесь программированием, вы, вероятно, прошли через это, и мы можем понять друг друга. Но даже если нет, эта статья поможет вам в дальнейшем писать хорошо организованный код. Позвольте представить вам метод, который я называю Код Бургера (Burger Code).
Статья: https://apptractor.ru/develop/coding/kak-strukturirovat-svoy-swift-kod.html
Платформа: iOS/программирование
Google AI SDK для Swift позволяет разработчикам использовать современные генеративные модели искусственного интеллекта Google (например, Gemini) для создания функций и приложений на базе искусственного интеллекта. Этот SDK поддерживает такие сценарии использования, как:
• Генерация текста из текстового ввода
• Генерация текст из текста и изображений (мультимодальный ввод)
• Создание многоходовых бесед (чат)
Google AI SDK for Swift на GitHub: https://github.com/google/generative-ai-swift
Платформа: iOS
⭐️: 504
Конечно, есть такой же для Android.
• Генерация текста из текстового ввода
• Генерация текст из текста и изображений (мультимодальный ввод)
• Создание многоходовых бесед (чат)
Google AI SDK for Swift на GitHub: https://github.com/google/generative-ai-swift
Платформа: iOS
⭐️: 504
Конечно, есть такой же для Android.
Telegram
AppFiles
Google Generative AI Sample - пример приложения для Android, который демонстрирует, как использовать современные генеративные модели ИИ (например, Gemini) для создания функций и приложений на базе ИИ.
Чтобы опробовать этот пример приложения, вам необходимо…
Чтобы опробовать этот пример приложения, вам необходимо…
Создаем пассивный UI в Jetpack Compose
Декларативный пользовательский интерфейс часто описывается как создание пользовательского интерфейса, который является «функциональным» по своей природе. То есть данные входят, а пользовательский интерфейс выходит. Это замечательно в абстрактном смысле, но в мире, где приложения без дополнительных побочных эффектов не особенно полезны для конечных пользователей, как этого можно добиться? В этом посте мы рассмотрим, как применять концепции и паттерны для создания «пассивного» или «тупого» пользовательского интерфейса — пользовательского интерфейса, который не делает ничего, кроме демонстрации визуальной картинки.
Статья: https://apptractor.ru/info/articles/sozdaem-passivnyy-ui-v-jetpack-compose.html
Платформа: Android
Декларативный пользовательский интерфейс часто описывается как создание пользовательского интерфейса, который является «функциональным» по своей природе. То есть данные входят, а пользовательский интерфейс выходит. Это замечательно в абстрактном смысле, но в мире, где приложения без дополнительных побочных эффектов не особенно полезны для конечных пользователей, как этого можно добиться? В этом посте мы рассмотрим, как применять концепции и паттерны для создания «пассивного» или «тупого» пользовательского интерфейса — пользовательского интерфейса, который не делает ничего, кроме демонстрации визуальной картинки.
Статья: https://apptractor.ru/info/articles/sozdaem-passivnyy-ui-v-jetpack-compose.html
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Ludwig - коллекция UI-компонентов для Jetpack Compose. Главный из них - морфинг для векторных изображений, кроме него есть пикер времени и даты, анимированные поля ввода с опциональными состояниями ошибок, анимированные кнопки, выпадающие списки.
Ludwig на GitHub: https://github.com/baec23/ludwig
Платформа: Android
⭐️: 52
Ludwig на GitHub: https://github.com/baec23/ludwig
Платформа: Android
⭐️: 52
👍1