Упрощаем локализацию iOS-приложения со String Catalogs
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее ты их сможешь заработать. Это правило справедливо и в обратную сторону: клиент будет более охотно пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
Статья: https://habr.com/ru/articles/788614/
Платформа: iOS
Выход продукта на новые рынки сбыта — это деньги. Чем лучше ты знаешь своего клиента, тем вероятнее ты их сможешь заработать. Это правило справедливо и в обратную сторону: клиент будет более охотно пользоваться твоим продуктом, если он может разговаривать с ним на одном языке.
Сегодня я расскажу о том, как можно в значительной мере облегчить и усовершенствовать процесс перевода iOS-приложения на другие языки. Языки, разумеется, человеческие: от Swift мы отказываться не будем.
Статья: https://habr.com/ru/articles/788614/
Платформа: iOS
🔥1
Bottom Dialog Android Picker - панель для выбора файлов, как в Telegram, для всех версий Android. В нем есть поиск, разворачиваемый и прокручиваемый диалог, полная настройка (цвет, текст, минимальный и максимальный размер выбранного файла), не требует runtime разрешения.
Bottom Dialog Android Picker на GitHub: https://github.com/mahdiasd/ComposeBottomDialogFilePicker
Платформа: Android
⭐️: 4
Bottom Dialog Android Picker на GitHub: https://github.com/mahdiasd/ComposeBottomDialogFilePicker
Платформа: Android
⭐️: 4
Новая пятничная подборка - видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Что вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
•
(iOS En)
Bring 3D to your App: Developing Native iOS Apps with Spline•
(iOS En)
SwiftUI Dock Progress Bar for macOS•
(iOS En)
SwiftData Background Tasks: Massively Improve Your Apps Performance•
(iOS En)
Source Control with Xcode: Branching and Merging•
(iOS En)
Unit Testing a SwiftUI Application using Xcode•
(iOS En)
From Challenge to Joy: My Journey Developing Tuist for Scalable Xcode Projects•
(And En)
Now in Android: 98 - Gemini Pro, Google AI SDK, Google AI Studio, Cast, Rust, and more!•
(And En)
How to Implement Firebase Push Notifications on Android (FCM + Backend)•
(And En)
How to Create an App Shortcut on Android•
(And En)
How to automatically test a Google Play Subscription•
(Crs Ru)
Позиция — KMP разработчик: Кирилла Розова собеседует Алексей Гладков•
(Crs Ru)
Flutter Dev Podcast #42: как стать Flutter-разработчиком? Часть 1•
(Dev Ru)
Разработка под Аврору•
(Dev Ru)
Безопасность приложений•
(Dev Ru)
Cracking the Mobile Interview•
(Dev Ru)
Как тимлиду оценить успешность в своей роли•
(Dev Ru)
Почему так мало женщин в IT?•
(Dev Ru)
Podlodka: Про дипфейки, этику и цену прогресса•
(Dev En)
LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google Gemini Pro, LLAMA2•
(Dev En)
Python Data Analysis and Visualization CourseЧто вы посмотрели/послушали интересного про разработку? Киньте ссылку в комментарии.
🌐 AppFiles
YouTube
Bring 3D to your App: Developing Native iOS Apps with Spline
@splinetool - a multi-platform and multi-dimensional design tool - has recently introduced native 3D for the Apple Ecosystem. This means that you can easily build an interactive 3D app, combine 3D scenes with native Swift projects, generate a pre-built Xcode…
👍1
Просто об архитектуре в Android
Меня зовут Артем, я Android developer BSL. В данной статье я рассмотрю один из возможных путей - простота и гармоничность на основе Clean Architecture. Важно понимать, что это всего лишь один из вариантов, который основан на моем личном видении. В мире разнообразных подходов не существует идеала, и, возможно, именно в этом заключается привлекательность процесса разработки - в бесконечных спорах и поиске оптимального решения.
Статья: https://habr.com/ru/companies/bsl/articles/788940/
Платформа: Android
Меня зовут Артем, я Android developer BSL. В данной статье я рассмотрю один из возможных путей - простота и гармоничность на основе Clean Architecture. Важно понимать, что это всего лишь один из вариантов, который основан на моем личном видении. В мире разнообразных подходов не существует идеала, и, возможно, именно в этом заключается привлекательность процесса разработки - в бесконечных спорах и поиске оптимального решения.
Статья: https://habr.com/ru/companies/bsl/articles/788940/
Платформа: Android
Как через Push-уведомления на iPhone утекают данные пользователей
Исследователь безопасности Томми Мыск продемонстрировал, как push-уведомления на iPhone могут использоваться популярными приложениями для скрытой отправки данных о пользователе.
Новость и видео: https://apptractor.ru/info/news/kak-cherez-push-uvedomleniya-na-iphone-utekayut-dannye-polzovateley.html
Платформа: iOS
Исследователь безопасности Томми Мыск продемонстрировал, как push-уведомления на iPhone могут использоваться популярными приложениями для скрытой отправки данных о пользователе.
Новость и видео: https://apptractor.ru/info/news/kak-cherez-push-uvedomleniya-na-iphone-utekayut-dannye-polzovateley.html
Платформа: iOS
Проект Gemini Android демонстрирует использование генеративного ИИ Google на Android с помощью Stream Chat SDK для Compose (напомню, что есть и официальный пример использования Gemin от Google). Цель этого репозитория - демонстрация Gemini API для Android, реализация всего UI с помощью Jetpack Compose, реализация компонентов архитектуры Android с помощью библиотек Jetpack, таких как Hilt и AppStartup, выполнение фоновых задач с помощью Kotlin Coroutines, интеграция чат-системы с Stream Chat Compose SDK для обработки событий в реальном времени.
Gemini Android на GitHub: https://github.com/skydoves/gemini-android
Платформа: Android
⭐️: 145
Gemini Android на GitHub: https://github.com/skydoves/gemini-android
Платформа: Android
⭐️: 145
👍2
Как я приложение на Compose писал
Было решено сделать какой-то небольшой проект на котором полноценно смогу обкатать подход. Делать что-то бесполезное не хотелось, поэтому нужно было определиться с темактикой. Долго думать не пришлось, был у меня в жизни очень неприятный прецедент с утечкой моих данных, который привел к печальным последствиям. Некоторая компания N профукала мои пароли, которыми позже воспользовались неблагочестивые граждане нашего с вами общества. Поэтому решение было очевидным: делать приложение, которому я смогу доверять в плане хранения информации и уже на нем полноценно обкатать Compose (выжать из него всевозможные соки, на сколько сил и мозгов хватит).
Статья: https://habr.com/ru/articles/789428/
Платформа: Android
Было решено сделать какой-то небольшой проект на котором полноценно смогу обкатать подход. Делать что-то бесполезное не хотелось, поэтому нужно было определиться с темактикой. Долго думать не пришлось, был у меня в жизни очень неприятный прецедент с утечкой моих данных, который привел к печальным последствиям. Некоторая компания N профукала мои пароли, которыми позже воспользовались неблагочестивые граждане нашего с вами общества. Поэтому решение было очевидным: делать приложение, которому я смогу доверять в плане хранения информации и уже на нем полноценно обкатать Compose (выжать из него всевозможные соки, на сколько сил и мозгов хватит).
Статья: https://habr.com/ru/articles/789428/
Платформа: Android
Что такое шейдер
Шейдер в компьютерной графике — это программный модуль, который используется для определения внешнего вида объектов и их поведения в трехмерной графике. Основная задача шейдеров — создание эффектов освещения, цвета, текстурирования и других визуальных аспектов, которые формируют конечное изображение на экране. На платформе Android с использованием языка программирования Kotlin, шейдеры обычно используются в контексте OpenGL ES (в версии 2.0 или выше) или Vulkan API для реализации графики на уровне GPU.
В iOS 17 стало возможным добавить шейдер к любой View. На платформе шейдеры применяются в контексте OpenGL ES или Metal API. Оба эти API предоставляют инструменты для создания высокопроизводительной графики на устройствах Apple.
На платформе Android шейдеры обычно используются в контексте OpenGL ES (в версии 2.0 или выше) или Vulkan API для реализации графики на уровне GPU.
Статья: https://apptractor.ru/info/articles/chto-takoe-sheyder.html
Платформа: разработка
Шейдер в компьютерной графике — это программный модуль, который используется для определения внешнего вида объектов и их поведения в трехмерной графике. Основная задача шейдеров — создание эффектов освещения, цвета, текстурирования и других визуальных аспектов, которые формируют конечное изображение на экране. На платформе Android с использованием языка программирования Kotlin, шейдеры обычно используются в контексте OpenGL ES (в версии 2.0 или выше) или Vulkan API для реализации графики на уровне GPU.
В iOS 17 стало возможным добавить шейдер к любой View. На платформе шейдеры применяются в контексте OpenGL ES или Metal API. Оба эти API предоставляют инструменты для создания высокопроизводительной графики на устройствах Apple.
На платформе Android шейдеры обычно используются в контексте OpenGL ES (в версии 2.0 или выше) или Vulkan API для реализации графики на уровне GPU.
Статья: https://apptractor.ru/info/articles/chto-takoe-sheyder.html
Платформа: разработка
Курс по большим языковым моделям
Курс по изучению (основы/исследователь/инженер) LLM с роадмапами, списками материалов и блокнотами Colab.
Курс на GitHub: https://github.com/mlabonne/llm-course
Платформа: обучение
Курс по изучению (основы/исследователь/инженер) LLM с роадмапами, списками материалов и блокнотами Colab.
Курс на GitHub: https://github.com/mlabonne/llm-course
Платформа: обучение
This media is not supported in your browser
VIEW IN TELEGRAM
Hand Shadows - эта библиотека позволяет быстро и легко интегрировать в приложение тени рук, которые следуют за жестами в реальном времени. По идее, это позволяет записывать более описательные и интуитивно понятные демонстрационные видео.
Hand Shadows на GItHub: https://github.com/adamwulf/HandShadows
Платформа: iOS
⭐️: 184
Hand Shadows на GItHub: https://github.com/adamwulf/HandShadows
Платформа: iOS
⭐️: 184
10 нестандартных уроков, полученных за 10 лет работы инженером-программистом
Десять лет назад я переехал в Манчестер, чтобы начать свою карьеру инженера-программиста. Чтобы отметить это событие и поразмышлять о пройденном пути, я сел за чашку хорошего кофе и собрал свои мысли о том, какие, на мой взгляд, самые важные уроки я получил на этом пути.
В результате получился список из десяти уроков, которые помогли мне больше всего.
1. Выбирайте обучение, а не деньги
2. Инвестируйте в принципы и практики
3. Станьте инженером, с которым все хотят работать
4. Разнообразьте свою жизнь
5. Относитесь к отзывам как к золоту
6. Сначала широкий уровень
7. Лидерство без титула
8. Думайте о сферах влияния
9. Наточите инструменты
10. Показывайте свою работу
Статья: https://apptractor.ru/info/articles/10-nestandartnyh-urokov-poluchennyh-za-10-let-raboty-inzhenerom-programmistom.html
Платформа: разработка/карьера
Десять лет назад я переехал в Манчестер, чтобы начать свою карьеру инженера-программиста. Чтобы отметить это событие и поразмышлять о пройденном пути, я сел за чашку хорошего кофе и собрал свои мысли о том, какие, на мой взгляд, самые важные уроки я получил на этом пути.
В результате получился список из десяти уроков, которые помогли мне больше всего.
1. Выбирайте обучение, а не деньги
2. Инвестируйте в принципы и практики
3. Станьте инженером, с которым все хотят работать
4. Разнообразьте свою жизнь
5. Относитесь к отзывам как к золоту
6. Сначала широкий уровень
7. Лидерство без титула
8. Думайте о сферах влияния
9. Наточите инструменты
10. Показывайте свою работу
Статья: https://apptractor.ru/info/articles/10-nestandartnyh-urokov-poluchennyh-za-10-let-raboty-inzhenerom-programmistom.html
Платформа: разработка/карьера
Как создать клиент App Store Connect API на Swift с помощью OpenAPI
В течение многих лет Apple предоставляла разработчикам веб-сервисы через портал для разработчиков и App Store Connect, которые позволяли выпускать релизы приложений, управлять сертификатами подписи и собирать отчеты о том, сколько денег вы зарабатываете на создании своих приложений. Раньше единственным способом доступа к этим сервисам был браузер, но в последние несколько лет ситуация изменилась с появлением App Store Connect API, которые позволяют любому человеку, имеющему учетную запись App Store Connect, получить доступ к большей части функциональности, которая раньше была доступна только через эти сайты.
Единственное, что требуется для начала работы с App Store Connect API — это API-ключ, но чтобы действительно извлечь из подключения максимум пользы — скажем, чтобы вы могли создавать собственные внутренние инструменты на основе данных App Store Connect — хорошей идеей будет настройка API-клиента для аутентификации и выполнения запросов к App Store Connect API.
Статья: https://apptractor.ru/all-api/kak-sozdat-klient-app-store-connect-api-na-swift-s-pomoschyu-openapi.html
Платформа: iOS
В течение многих лет Apple предоставляла разработчикам веб-сервисы через портал для разработчиков и App Store Connect, которые позволяли выпускать релизы приложений, управлять сертификатами подписи и собирать отчеты о том, сколько денег вы зарабатываете на создании своих приложений. Раньше единственным способом доступа к этим сервисам был браузер, но в последние несколько лет ситуация изменилась с появлением App Store Connect API, которые позволяют любому человеку, имеющему учетную запись App Store Connect, получить доступ к большей части функциональности, которая раньше была доступна только через эти сайты.
Единственное, что требуется для начала работы с App Store Connect API — это API-ключ, но чтобы действительно извлечь из подключения максимум пользы — скажем, чтобы вы могли создавать собственные внутренние инструменты на основе данных App Store Connect — хорошей идеей будет настройка API-клиента для аутентификации и выполнения запросов к App Store Connect API.
Статья: https://apptractor.ru/all-api/kak-sozdat-klient-app-store-connect-api-na-swift-s-pomoschyu-openapi.html
Платформа: iOS
👍1
Calendar - настраиваемая библиотека для отображения календаря в Android, опирающаяся на RecyclerView для системы View и LazyRow/LazyColumn для Compose. Из фич - выбор одной, нескольких или диапазона дат, режим неделя/месяц, кастомные view/composable для ячейки даты и самого календаря, горизонтальный или вертикальный скрол, тепловая карта и прочее.
Calendar на GitHub: https://github.com/kizitonwose/Calendar
Платформа: Android
⭐️: 4.2K
Calendar на GitHub: https://github.com/kizitonwose/Calendar
Платформа: Android
⭐️: 4.2K
Как мы в Fix Price запустили PWA-приложение для Android
Меня зовут Роман Хаджаев, я работаю над проектами Fix Price в качестве фронтенд-разработчика. Сегодня расскажу вам о том, как мы создали собственное веб-приложение и развернули его для запуска на Android. Да, речь идет о PWA-приложении, в которое мы упаковали наш сайт и добавили некоторые дополнительные функции. А в завершение дам полезную информацию начинающим разработчикам, которые только приступают к решению подобных задач.
Статья: https://habr.com/ru/companies/fix_price/articles/790100/
Платформа: Android/кроссплатформа
Меня зовут Роман Хаджаев, я работаю над проектами Fix Price в качестве фронтенд-разработчика. Сегодня расскажу вам о том, как мы создали собственное веб-приложение и развернули его для запуска на Android. Да, речь идет о PWA-приложении, в которое мы упаковали наш сайт и добавили некоторые дополнительные функции. А в завершение дам полезную информацию начинающим разработчикам, которые только приступают к решению подобных задач.
Статья: https://habr.com/ru/companies/fix_price/articles/790100/
Платформа: Android/кроссплатформа
Шаблоны корутин в Android и как они работают
Можно бесконечно долго смотреть на огонь, воду и то, как работают корутины. Вот хороший набор паттернов, которые действительно стоит изучить Android-разработчику.
Статья: https://apptractor.ru/info/articles/shablony-korutin-v-android-i-kak-oni-rabotayut.html
Платформа: Android
Можно бесконечно долго смотреть на огонь, воду и то, как работают корутины. Вот хороший набор паттернов, которые действительно стоит изучить Android-разработчику.
Статья: https://apptractor.ru/info/articles/shablony-korutin-v-android-i-kak-oni-rabotayut.html
Платформа: Android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
3D Pokemon Card - небольшой забавный проект, демонстрирующий реализацию эффекта параллакса в SwiftUI. Фичи - используется анимация SwiftUI для создания эффекта параллакса на карточке, код организован по модульному принципу с возможностью многократного использования, что позволяет легко интегрировать эффект параллакса в другие проекты SwiftUI, можно легко настроить карточку покемона, изменив содержимое и изображение.
3D Pokemon Card на GItHub: https://github.com/helvetiica/PokemonCard
Платформа: iOS
⭐️: 64
3D Pokemon Card на GItHub: https://github.com/helvetiica/PokemonCard
Платформа: iOS
⭐️: 64
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Интегрируем интерактивные 2D/3D-объекты в iOS-приложение
Мы разобрали варианты реализации интерактивного логотипа тремя разными способами, которые сделают приложение более привлекательным. Благодаря этому плоское изображение проходит маленькую эволюцию к объемному объекту. Но применение этих технологий не ограничивается только лишь разобранными выше примерами — экспериментируйте!
Статья: https://habr.com/ru/companies/simbirsoft/articles/790294/
Платформа: iOS
Мы разобрали варианты реализации интерактивного логотипа тремя разными способами, которые сделают приложение более привлекательным. Благодаря этому плоское изображение проходит маленькую эволюцию к объемному объекту. Но применение этих технологий не ограничивается только лишь разобранными выше примерами — экспериментируйте!
Статья: https://habr.com/ru/companies/simbirsoft/articles/790294/
Платформа: iOS
👍2
Kotlin изнутри: как работают inline-функции
Многие разработчики не понимают, в чем польза inline-функций, зачем нужен crossinline и как работает reified. Причина распространенных заблуждений насчет inline-функций отчасти заключается в неточном их описании, ранее опубликованном на сайте kotlinlang.org. Хочу развенчать эти заблуждения и наглядно показать, как работают inline-функции (встраиваемые) и в чем преимущество их использования.
Статья: https://apptractor.ru/kotlin-inline-medium
Платформа: Android/Kotlin
Многие разработчики не понимают, в чем польза inline-функций, зачем нужен crossinline и как работает reified. Причина распространенных заблуждений насчет inline-функций отчасти заключается в неточном их описании, ранее опубликованном на сайте kotlinlang.org. Хочу развенчать эти заблуждения и наглядно показать, как работают inline-функции (встраиваемые) и в чем преимущество их использования.
Статья: https://apptractor.ru/kotlin-inline-medium
Платформа: Android/Kotlin
👍2❤1
Повышение производительности модульных тестов в MEGA Android
В этом посте рассказывается о наших усилиях по аудиту и изобретению «легкой» тестовой конфигурации — конфигурации с отключением ненужных задач Gradle. Это приводит к ускорению времени компиляции юнит-тестов как на локальном компьютере, так и в CI.
Статья: https://apptractor.ru/info/articles/povyshenie-proizvoditelnosti-modulnyh-testov-v-mega-android.html
Платформа: Android
В этом посте рассказывается о наших усилиях по аудиту и изобретению «легкой» тестовой конфигурации — конфигурации с отключением ненужных задач Gradle. Это приводит к ускорению времени компиляции юнит-тестов как на локальном компьютере, так и в CI.
Статья: https://apptractor.ru/info/articles/povyshenie-proizvoditelnosti-modulnyh-testov-v-mega-android.html
Платформа: Android
❤2
Neo Store - современный и многофункциональный клиент F-Droid для всех. Его основные особенности - UX, ориентированный на расширение возможностей пользователей, быстрая синхронизация репозиториев, встроенные репозитории, легкое открытие новых приложений, минимализм с принципами KISS.
Neo Store на GitHub: https://github.com/NeoApplications/Neo-Store
Платформа: Android
⭐️: 2.3K
Neo Store на GitHub: https://github.com/NeoApplications/Neo-Store
Платформа: Android
⭐️: 2.3K