Готов ли Swift OpenAPI Generator для продуктивного кода?
Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогенерацию для автоматического создания кода на Swift из YAML- или JSON-файла спецификации. Это позволяет автоматизировать создание DTO, сделать их единообразными и повысить эффективность разработки. Кодогенератор также упрощает сетевой слой, генерируя методы API, наборы параметров, заголовки и т.д.
На WWDC `23 Apple представила свой Open Source-генератор Swift OpenAPI Generator, который как раз и решает эту задачу. Давайте рассмотрим, готов ли в текущем виде Swift OpenAPI Generator для решения нашей проблемы.
Статья: https://habr.com/ru/companies/ozontech/articles/769624/
Платформа: iOS
Мы хотим упростить работу с OpenAPI-спецификациями, внедрив кодогенерацию для автоматического создания кода на Swift из YAML- или JSON-файла спецификации. Это позволяет автоматизировать создание DTO, сделать их единообразными и повысить эффективность разработки. Кодогенератор также упрощает сетевой слой, генерируя методы API, наборы параметров, заголовки и т.д.
На WWDC `23 Apple представила свой Open Source-генератор Swift OpenAPI Generator, который как раз и решает эту задачу. Давайте рассмотрим, готов ли в текущем виде Swift OpenAPI Generator для решения нашей проблемы.
Статья: https://habr.com/ru/companies/ozontech/articles/769624/
Платформа: iOS
Twine - это многоплатформенное приложение для чтения RSS-лент, созданное с использованием Kotlin и Compose Multiplatform. Оно обладает приятным пользовательским интерфейсом и удобным просмотром потоков, а также поддерживает динамическое тематическое оформление контента на основе Material 3. Внутри Kotlin Multiplatform, корутины, Compose Multiplatform, Ktor, SQLDelight, Decompose и Kotlin-inject.
Twine на GitHub: https://github.com/msasikanth/twine
Платформа: Android/кроссплатформа
⭐️: 593
Twine на GitHub: https://github.com/msasikanth/twine
Платформа: Android/кроссплатформа
⭐️: 593
👍1
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
•
(iOS Ru)
Автоматизация ревью ресурсных картинок в iOS•
(iOS Ru)
ChatGPT в мобильной разработке: как использовать, чтобы получить пользу•
(iOS Ru)
Реальное iOS собеседование в Яндекс•
(iOS En)
Mastering TipKit in iOS 17•
(iOS En)
SwiftUI: Building Notes App + SwiftData + CRUD•
(iOS En)
Build a Twitch-Like Live Streaming App With SwiftUI•
(iOS En)
Resizable Custom Tab Bar for macOS•
(iOS En)
Lock SwiftUI View With Biometric/Custom Number Lock - Local Authentication•
(And Ru)
Собеседование в Яндекс: платформа Android•
(And Ru)
Kodein в Android. Что за зверь и как его готовить•
(And Ru)
Готовим конфигурацию Android-приложения с помощью Dynamic Proxy и рефлексии•
(And En)
#TheAndroidShow: faster and easier to build excellent apps, across devices!•
(And En)
Play PolicyBytes•
(And En)
95% Don't Understand THIS About Coroutines (Main-Safety)•
(And En)
Which Compile Options Should You Choose? (Java & Kotlin Version)•
(Crs En)
Building a Spotify Music Player with Real-Time Lyrics using Flutter•
(Dev Ru)
Avito Platform engineering meetup #2•
(Dev Ru)
Ozon Tech Community ML&DS Meetup•
(Tst Ru)
Полный курс по QA. Как правильно писать тесты?•
(Tst Ru)
Как изменились подходы к автоматизированному тестированию в Тинькофф•
(Tst En)
Beginner Guide to Mutation Testing in KotlinПоставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
AppTractor
Автоматизация ревью ресурсных картинок в iOS
Это простое решение подходит для проекта любого масштаба, поэтому у вас будет возможность зареюзать его, ведь оно просто в использовании и доступно в open source.
👍2
Обновил подборку онлайн собеседований мобильных разработчиков
Всего 60! записей - для Junior, Middle и Sénior собеседователей.
Все видео: https://apptractor.ru/sobesedovaniya
Всего 60! записей - для Junior, Middle и Sénior собеседователей.
Все видео: https://apptractor.ru/sobesedovaniya
AppTractor
Онлайн собеседования мобильных разработчиков - AppTractor
AppTractor: люди, доходы и инструменты мобильных приложений
👍3
Aidoku - открытое бесплатное приложение для чтения манги для iOS и iPadOS.
Aidoku на GitHub: https://github.com/Aidoku/Aidoku
Платформа: iOS
⭐️: 1.1K
Aidoku на GitHub: https://github.com/Aidoku/Aidoku
Платформа: iOS
⭐️: 1.1K
👍1
Как устроены собеседования в SberDevices — Максим Сидоров
Второе интервью с Максимом Сидоровым из SberDevices, в котором он рассказывает про процесс собеседований в компании.
Интервью: https://apptractor.ru/info/interview/kak-ustroeny-sobesedovaniya-v-sberdevices-maksim-sidorov.html
Платформа: Android/собеседования
Второе интервью с Максимом Сидоровым из SberDevices, в котором он рассказывает про процесс собеседований в компании.
Интервью: https://apptractor.ru/info/interview/kak-ustroeny-sobesedovaniya-v-sberdevices-maksim-sidorov.html
Платформа: Android/собеседования
👍1
Регулировка громкости наушников Bluetooth
Недавно я приобрел наушники Tozo T6. Они замечательные, и я их люблю, но при сопряжении, отключении или подключении они воспроизводят звук, который, на мой взгляд, слишком громкий. Я не смог исправить это, например, настроив эквалайзер на уменьшение нескольких децибел по всему диапазону. Я спросил производителя об этом по электронной почте, и они быстро ответили, что ничего не могут сделать, что вполне понятно - это, вероятно, не самая распространенная просьба. Но для меня это было слишком громко, чтобы продолжать пользоваться ими, поэтому я решил попытаться решить проблему самостоятельно.
Статья: https://blog.ornx.net/post/bluetooth-volume-fix/
Недавно я приобрел наушники Tozo T6. Они замечательные, и я их люблю, но при сопряжении, отключении или подключении они воспроизводят звук, который, на мой взгляд, слишком громкий. Я не смог исправить это, например, настроив эквалайзер на уменьшение нескольких децибел по всему диапазону. Я спросил производителя об этом по электронной почте, и они быстро ответили, что ничего не могут сделать, что вполне понятно - это, вероятно, не самая распространенная просьба. Но для меня это было слишком громко, чтобы продолжать пользоваться ими, поэтому я решил попытаться решить проблему самостоятельно.
Статья: https://blog.ornx.net/post/bluetooth-volume-fix/
This media is not supported in your browser
VIEW IN TELEGRAM
Что будет если команда, не видавшая Compose, решила делать новую сложную фичу на нём?
Меня зовут Дмитрий Максимов, я Android разработчик в Dodo Engineering. Больше 2-х лет я пробовал Jetpack Compose в пет-проектах, но хотелось прокачать свои знания по полной и попробовать фреймворк в настоящем проде. В этой статье расскажу, как мы сделали сложный Compose экран с нестандартным скроллом и снаппингом контента.
Статья: https://habr.com/ru/companies/dododev/articles/764540/
Платформа: Android
Меня зовут Дмитрий Максимов, я Android разработчик в Dodo Engineering. Больше 2-х лет я пробовал Jetpack Compose в пет-проектах, но хотелось прокачать свои знания по полной и попробовать фреймворк в настоящем проде. В этой статье расскажу, как мы сделали сложный Compose экран с нестандартным скроллом и снаппингом контента.
Статья: https://habr.com/ru/companies/dododev/articles/764540/
Платформа: Android
👍2
FlorisBoard - это бесплатная клавиатура с открытым исходным кодом для устройств на базе Android 7.0+. Она нацелена на то, чтобы быть современной, удобной и настраиваемой, при этом полностью уважать конфиденциальность пользователей. В настоящее время находится в состоянии ранней бета-версии. Внутри AndroidX, Accompanist Compose UI, KotlinX, ICU4C.
FlorisBoard на GitHub: https://github.com/florisboard/florisboard
Платформа: Android
⭐️: 4.6K
FlorisBoard на GitHub: https://github.com/florisboard/florisboard
Платформа: Android
⭐️: 4.6K
Moya - слой сетевых абстракций поверх Alamofire, который в достаточной степени инкапсулирует непосредственные вызовы сетевой библиотеки. Некоторые замечательные функции Moya:
• Проверка корректности доступа к конечным точкам API во время компиляции.
• Четкое определение использования различных конечных точек с соответствующими перечислениями.
• Тестовые заглушки рассматриваются как рабочие, поэтому Unit-тестирование становится очень простым.
Moya на GitHub: https://github.com/Moya/Moya
Статья: Обработка сетевых вызовов в Swift с помощью Moya
Платформа: iOS
⭐️: 14.8K
• Проверка корректности доступа к конечным точкам API во время компиляции.
• Четкое определение использования различных конечных точек с соответствующими перечислениями.
• Тестовые заглушки рассматриваются как рабочие, поэтому Unit-тестирование становится очень простым.
Moya на GitHub: https://github.com/Moya/Moya
Статья: Обработка сетевых вызовов в Swift с помощью Moya
Платформа: iOS
⭐️: 14.8K
Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
В этой статье я постараюсь рассказать, что такое BDUI с точки зрения бэкенд-разработчика, как мы прошли путь от стандартного API с данными для фронтенда до UI JSON-файлов, по которым строятся экраны приложения. Этот пост будет интересен тем, кто планирует перейти на этот подход, но пока не знает, как это сделать максимально плавно и сразу обойти проблемы, с которыми повстречались мы.
Статья: https://habr.com/ru/companies/yandex/articles/768282/
Платформа: разработка
В этой статье я постараюсь рассказать, что такое BDUI с точки зрения бэкенд-разработчика, как мы прошли путь от стандартного API с данными для фронтенда до UI JSON-файлов, по которым строятся экраны приложения. Этот пост будет интересен тем, кто планирует перейти на этот подход, но пока не знает, как это сделать максимально плавно и сразу обойти проблемы, с которыми повстречались мы.
Статья: https://habr.com/ru/companies/yandex/articles/768282/
Платформа: разработка
❤2
Local AI Stack - этот репозиторий содержит стартовый набор для создания ИИ-приложений, работающих локально. С его помощью любой желающий может бесплатно создать простое ИИ-приложение для работы с вопросами и ответами на основе собственных документов. В наборе используются Ollama для создания модели, LangChain для оркестровки LLM и Next.js для логики приложения.
Local AI Stack на GitHub: https://github.com/ykhli/local-ai-stack
Платформа: разработка/ИИ
⭐️: 220
Local AI Stack на GitHub: https://github.com/ykhli/local-ai-stack
Платформа: разработка/ИИ
⭐️: 220
This media is not supported in your browser
VIEW IN TELEGRAM
ComposeNumericRoller демонстрирует динамическую анимацию цифр в Android-приложении с помощью Jetpack Compose. Легко анимируйте меняющиеся цифры, прокручивая их вверх или вниз, чтобы обеспечить красивое взаимодействие с пользователем.
ComposeNumericRoller на GitHub: https://github.com/HadiDortaj/ComposeNumericRoller
Платформа: Android
⭐️: 7
ComposeNumericRoller на GitHub: https://github.com/HadiDortaj/ComposeNumericRoller
Платформа: Android
⭐️: 7
Байт-код — это просто! Как сделать DI по-настоящему быстрым
Два года назад мы в Яндекс Маркетае начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.
Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения.
В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.
Статья: https://habr.com/ru/companies/yandex/articles/770800/
Платформа: Android
Два года назад мы в Яндекс Маркетае начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.
Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения.
В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.
Статья: https://habr.com/ru/companies/yandex/articles/770800/
Платформа: Android
❤1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
touchHLE - это высокоуровневый эмулятор приложений для iPhone OS. Он работает на современных настольных операционных системах и Android и написан на языке Rust.
Подход touchHLE к высокоуровневой эмуляции (HLE) отличается от низкоуровневой эмуляции (LLE) тем, что он не имитирует непосредственно аппаратное обеспечение iPhone/iPod touch. Вместо того чтобы запускать iPhone OS внутри эмуляции, touchHLE сам занимает место iPhone OS и предоставляет собственные реализации системных фреймворков (Foundation, UIKit, OpenGL ES, OpenAL и др.). Единственный код, который выполняет эмулируемый процессор, - это бинарный файл приложения и несколько библиотек.
Цель проекта - запуск игр, появившихся на заре iOS. В настоящее время работают приложения для iPhone и iPod touch для iPhone OS 2.x. Далее ожидается поддержка iPhone OS 3.0. В долгосрочной перспективе iPhone OS 3.1, приложения для iPad (iPhone OS 3.2), iOS 4.x.
Поддержка приложений, которые не являются играми, не является приоритетной - это сложнее и менее интересно.
touchHLE на GitHub: https://github.com/hikari-no-yume/touchHLE
Платформа: iOS
⭐️: 2K
Подход touchHLE к высокоуровневой эмуляции (HLE) отличается от низкоуровневой эмуляции (LLE) тем, что он не имитирует непосредственно аппаратное обеспечение iPhone/iPod touch. Вместо того чтобы запускать iPhone OS внутри эмуляции, touchHLE сам занимает место iPhone OS и предоставляет собственные реализации системных фреймворков (Foundation, UIKit, OpenGL ES, OpenAL и др.). Единственный код, который выполняет эмулируемый процессор, - это бинарный файл приложения и несколько библиотек.
Цель проекта - запуск игр, появившихся на заре iOS. В настоящее время работают приложения для iPhone и iPod touch для iPhone OS 2.x. Далее ожидается поддержка iPhone OS 3.0. В долгосрочной перспективе iPhone OS 3.1, приложения для iPad (iPhone OS 3.2), iOS 4.x.
Поддержка приложений, которые не являются играми, не является приоритетной - это сложнее и менее интересно.
touchHLE на GitHub: https://github.com/hikari-no-yume/touchHLE
Платформа: iOS
⭐️: 2K
Skip - это технология для создания двухплатформенных мобильных приложений на языке Swift. Сердцем Skip является интеллектуальный транспилятор языка Swift в Kotlin. Для анализа исходного текста Swift в Skip используется собственная библиотека Apple SwiftSyntax - та же самая, что используется в макросах Swift. Затем она преобразует код в понятный для восприятия Kotlin, сохраняя даже комментарии. Благодаря схожести языков, результат часто не отличается от Kotlin, который вы написали бы вручную (заметным исключением является перенос SwiftUI в Compose. Тот факт, что SwiftUI является объектно-ориентированным, а Compose - функциональным, требует некоторых неуклюжих преобразований исходного кода). Вместе с транспилятором Skip поставляет конвертер проектов Swift Package Manager (SPM) в Android Gradle. Skip объединяет эти инструменты в плагин для сборки Xcode. Этот набор инструментов Skip называется SkipStone. В этом репозитории как раз он и размещен. Здесь также размещены форумы Skip для общих обсуждений, а также для обсуждения конкретных проблем и сообщений об ошибках.
Skip на GItHub: https://github.com/skiptools/skip
Платформа: iOS/кроссплатформа
⭐️: 426
Skip на GItHub: https://github.com/skiptools/skip
Платформа: iOS/кроссплатформа
⭐️: 426
Видео и подкасты за неделю:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Поставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
•
(iOS Ru)
Кнопки красить — это вам не деревья вертеть•
(iOS En)
New SwiftUI Photo Picker - Single & Multiple Selection•
(iOS En)
SwiftData CRUD Operations•
(iOS En)
How to solve nested Observable Objects issue•
(iOS En)
Swift Connection 2023 Videos•
(iOS En)
Cleaner, Safer Code with Swift KeyPaths•
(iOS En)
A Tour of Xcode Cloud•
(iOS En)
An Easier Dev Life with Kaleidoscope•
(And Ru)
Собеседование с Михаилом Левченко•
(And Ru)
Управление сложностью состояния•
(And En)
Now in Android: 94 - #TheAndroidShow, Jetpack Glance, Google Play policy updates, and more•
(And En)
AndroidX, Gradle and Metalava - Android Developers Backstage•
(And En)
When Should You Migrate to Jetpack Compose?•
(And En)
3 Clean Code Hacks I Bet You Didn't Know•
(And En)
What's new in Kotlin 1.9.20•
(And En)
Making Threads for Android•
(And En)
Kotlin & Android Development Course: Build a Quiz Application•
(Crs En)
A Complete Guide on “Login with WhatsApp” in Flutter Apps (w/ backend)•
(Dev Ru)
Backend Driven… Аналитика!•
(Dev Ru)
Podlodka #341: рендеринг текста проклятПоставьте 👍, если понравилась подборка. А если вы увидели/выпустили какое-то другое интересное видео - отправьте боту🧑🏻💻
AppTractor
Кнопки красить — это вам не деревья вертеть
На примере обычной кнопки Евгений расскажет, почему верстка интерфейса не так проста, как кажется на первый взгляд, и почему объяснить процесс создания UI-элемента порой сложнее, чем рассказать об алгоритмах работы с деревьями.
👍2
Tabman - мощный Page View Controller с интерактивными индикаторными полосами. Несколько вариантов представления, расширяемый, легко настраиваемый.
Tabman на GitHub: https://github.com/uias/Tabman
Платформа: iOS
⭐️: 2.7K
Tabman на GitHub: https://github.com/uias/Tabman
Платформа: iOS
⭐️: 2.7K
👍1
Разбор задачи A отборочного этапа Yandex Cup 2023 — iOS
Недавно закончился отборочный этап Yandex Cup для разработчиков по различным направлениям, одним из которых была мобильная разработка под iOS. Как раз про нее и поговорим, а точнее про задания, которые были там представлены. Стоит отметить, что их сложность выше среднего, по этой причине, думаю, каждый подчеркнет для себя что-нибудь новое. Хотелось бы сразу сказать о том, что некоторые используемые конструкции/инструменты языка/фреймворков были для меня не новы, но в жизни встречался с ними редко, поэтому приходилось читать и на практике воспроизводить код из условия, экспериментируя с ним. Правильных ответов у меня не было, и решал я уже после окончания отборочного этапа. Если заметите какие-либо неточности в формулировках, в размышлениях, в ответах, буду рад обсудить это в комментариях.
Статья: https://habr.com/ru/articles/771948/
Платформа: iOS
Недавно закончился отборочный этап Yandex Cup для разработчиков по различным направлениям, одним из которых была мобильная разработка под iOS. Как раз про нее и поговорим, а точнее про задания, которые были там представлены. Стоит отметить, что их сложность выше среднего, по этой причине, думаю, каждый подчеркнет для себя что-нибудь новое. Хотелось бы сразу сказать о том, что некоторые используемые конструкции/инструменты языка/фреймворков были для меня не новы, но в жизни встречался с ними редко, поэтому приходилось читать и на практике воспроизводить код из условия, экспериментируя с ним. Правильных ответов у меня не было, и решал я уже после окончания отборочного этапа. Если заметите какие-либо неточности в формулировках, в размышлениях, в ответах, буду рад обсудить это в комментариях.
Статья: https://habr.com/ru/articles/771948/
Платформа: iOS
👍1
Как сделать тесты на Espresso более читабельными и стабильными
Если вы писали тесты на Espresso — тестовом фреймворке от Google с открытым исходным кодом, — то вы знаете, что они не всегда стабильны и легко читаемы. Меня зовут Ксения Никитина, я являюсь Android-разработчиком в мобильной команде «Лаборатории Касперского». В этой статье я предложу вам способ, как сделать так, чтобы ваши автотесты отвечали всем ключевым качествам: были хорошо читаемы, стабильны, логируемы, давали возможность делать скриншоты, работали с AndroidOS и, наконец, имели продуманную и понятную архитектуру.
Статья: https://habr.com/ru/companies/kaspersky/articles/770108/
Платформа: Android/тестирование
Если вы писали тесты на Espresso — тестовом фреймворке от Google с открытым исходным кодом, — то вы знаете, что они не всегда стабильны и легко читаемы. Меня зовут Ксения Никитина, я являюсь Android-разработчиком в мобильной команде «Лаборатории Касперского». В этой статье я предложу вам способ, как сделать так, чтобы ваши автотесты отвечали всем ключевым качествам: были хорошо читаемы, стабильны, логируемы, давали возможность делать скриншоты, работали с AndroidOS и, наконец, имели продуманную и понятную архитектуру.
Статья: https://habr.com/ru/companies/kaspersky/articles/770108/
Платформа: Android/тестирование
👍1