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
Что нового в AOSP 14
Разработчики Серджио Прадо и Крис Симмондс недавно рассказали о том, что нового в AOSP 14, и в дополнение к этому Серджио поделился интересной статистикой о размере исходного кода, времени сборки и многом другом.
Удивительно видеть, как сильно выросла AOSP с момента выхода Android 8 Oreo в 2017 году. Размер исходного кода AOSP 14 составляет 165 ГБ по сравнению с 87 ГБ в AOSP 8. Размер выходной сборки увеличился до 150 ГБ в AOSP 14 по сравнению с 87 ГБ в AOSP 8.
Видео + данные: https://apptractor.ru/info/media/chto-novogo-v-aosp-14.html
Платформа: Android
Разработчики Серджио Прадо и Крис Симмондс недавно рассказали о том, что нового в AOSP 14, и в дополнение к этому Серджио поделился интересной статистикой о размере исходного кода, времени сборки и многом другом.
Видео + данные: https://apptractor.ru/info/media/chto-novogo-v-aosp-14.html
Платформа: Android
👍1
11 вещей, которые я узнал после того, как стал проводить технические интервью
Когда вы сидите по другую сторону стола, доски или Zoom, вы видите вещи с совершенно другой точки зрения. Я хочу, чтобы у кандидатов был лучший опыт собеседований и хорошее впечатление о компании. Я хотел бы поделиться 11 вещами, которые я узнал во время проведения интервью, чтобы вы могли лучше подготовиться к своему следующему собеседованию.
1. Мы не читаем ваше резюме
2. Мы тоже нервничаем
3. Больше разговоров поможет вам
4. Общение — ключ к успеху
5. Просить о помощи не стыдно
6. Идеального решения не существует
7. Отсутствие практики очевидно
8. Google разрешен, если вы спросите
9. Когда мы печатаем и отводим взгляд, это означает, что мы делаем заметки
10. Когда мы не разговариваем, это не значит, что мы осуждаем вас
11. Мы хотим, чтобы кандидаты прошли собеседование
Статья: https://apptractor.ru/info/articles/11-veschey-kotorye-ya-uznal-posle-togo-kak-stal-provodit-tehnicheskie-intervyu.html
Платформа: собеседования
Когда вы сидите по другую сторону стола, доски или Zoom, вы видите вещи с совершенно другой точки зрения. Я хочу, чтобы у кандидатов был лучший опыт собеседований и хорошее впечатление о компании. Я хотел бы поделиться 11 вещами, которые я узнал во время проведения интервью, чтобы вы могли лучше подготовиться к своему следующему собеседованию.
1. Мы не читаем ваше резюме
2. Мы тоже нервничаем
3. Больше разговоров поможет вам
4. Общение — ключ к успеху
5. Просить о помощи не стыдно
6. Идеального решения не существует
7. Отсутствие практики очевидно
8. Google разрешен, если вы спросите
9. Когда мы печатаем и отводим взгляд, это означает, что мы делаем заметки
10. Когда мы не разговариваем, это не значит, что мы осуждаем вас
11. Мы хотим, чтобы кандидаты прошли собеседование
Статья: https://apptractor.ru/info/articles/11-veschey-kotorye-ya-uznal-posle-togo-kak-stal-provodit-tehnicheskie-intervyu.html
Платформа: собеседования
❤8🤡1
BadgeIcon позволяет использовать в SwiftUI иконки, похожие на те, что вы найдете в системных настройках iOS и macOS. BadgeIcon поставляется с кучей предопределенных иконок, как на рисунке выше, или же вы можете создавать свои собственные.
BadgeIcon на GitHub: https://github.com/danielsaidi/BadgeIcon
Платформа: iOS
⭐️: 12
BadgeIcon на GitHub: https://github.com/danielsaidi/BadgeIcon
Платформа: iOS
⭐️: 12
Как я создаю iOS игру на Unity c использованием MidJourney, ChatGPT, Adobe Firefly и много ручного труда
Это невероятное удовольствие сидеть и прорабатывать смыслы, придумывать логику, создавать сценарии и воплощать то, чего никогда ранее не существовало. Именно так рождаются продукты и идеи, которыми я их наполняю. Творите, друзья! Не бойтесь воплощать свои идеи в жизнь, даже если это кажется сложным. Страсть и преданность вашему делу помогут вам преодолеть любые трудности и создать нечто удивительное.
Статья: https://vc.ru/tribuna/957493-kak-ya-sozdayu-ios-igru-na-unity-c-ispolzovaniem-midjourney-chatgpt-adobe-firefly-i-mnogo-ruchnogo-truda
Платформа: разработка
Это невероятное удовольствие сидеть и прорабатывать смыслы, придумывать логику, создавать сценарии и воплощать то, чего никогда ранее не существовало. Именно так рождаются продукты и идеи, которыми я их наполняю. Творите, друзья! Не бойтесь воплощать свои идеи в жизнь, даже если это кажется сложным. Страсть и преданность вашему делу помогут вам преодолеть любые трудности и создать нечто удивительное.
Статья: https://vc.ru/tribuna/957493-kak-ya-sozdayu-ios-igru-na-unity-c-ispolzovaniem-midjourney-chatgpt-adobe-firefly-i-mnogo-ruchnogo-truda
Платформа: разработка
NanoKt - элегантное и легкое решение для разработки под Android, обширная коллекция современных функций расширения, охватывающих многие области фреймворка Android и стандартных библиотек Java и Kotlin. NanoKt сделает ваш код более элегантным, эффективным и сэкономит ваше время. Более того, это достигается без ущерба для производительности, поскольку почти все предоставляемые функции и свойства встраиваются во время компиляции.
Зачем нужна еще одна библиотека расширений?
NanoKt выделяется тем, что предоставляет хорошо документированные функции с рекомендуемыми аннотациями, что позволяет работать с ними в стиле AndroidX. Продуманная структура и именование методов, вдохновленные фреймворком Android, направлены на устранение избыточного кода без навязывания универсального фреймворка. Он предназначен для легкой интеграции в различные проекты Android.
Библиотека разделена на модули для чистого Kotlin, Kotlin-JVM и Kotlin-Android, что делает ее совместимой с широким спектром проектов. Позже автор планирует выпустить совместимую версию для Kotlin Multiplatform.
NanoKt на GitHub: https://github.com/conena/nanokt
Платформа: Android
⭐️: 54
Зачем нужна еще одна библиотека расширений?
NanoKt выделяется тем, что предоставляет хорошо документированные функции с рекомендуемыми аннотациями, что позволяет работать с ними в стиле AndroidX. Продуманная структура и именование методов, вдохновленные фреймворком Android, направлены на устранение избыточного кода без навязывания универсального фреймворка. Он предназначен для легкой интеграции в различные проекты Android.
Библиотека разделена на модули для чистого Kotlin, Kotlin-JVM и Kotlin-Android, что делает ее совместимой с широким спектром проектов. Позже автор планирует выпустить совместимую версию для Kotlin Multiplatform.
NanoKt на GitHub: https://github.com/conena/nanokt
Платформа: Android
⭐️: 54
GitHub
GitHub - conena/nanokt: A lightweight extensions library for Android and Kotlin
A lightweight extensions library for Android and Kotlin - conena/nanokt
👍1🤡1