Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.82K subscribers
1.46K photos
71 videos
52 files
4.22K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
🛠️ «Бруклинский мост» между C++ и Kotlin

В статье рассматривается необходимость использования моста C++ в Android для тех задач, которые невозможно эффективно решить полностью на JVM, например для разработки пользовательского шифрования, создания пользовательских типов двоичных файлов, реализации межсетевого экрана.

💡 Цель — сделать приложения более стабильными за счет возможности раздельного тестирования кода на Kotlin и C++, и концепция «Бруклинского моста» призвана облегчить этот процесс.

Читать статью

#статья
👍4
🔖💡 В Swift существует богатый набор методов работы с массивами, которые позволяют разработчикам эффективно манипулировать массивами. Разбираемся как они работают на примерах с эмодзи. Часть первая👇

1️⃣ Первый метод — .count

Здесь всё просто — считает количество элементов в массиве. Пример:

let a = [🔥, 💧, ☀️, ❄️]
a.count // 4

2️⃣ Второй метод — .filter

let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.filter { $0 == 🔥 }
print(b) // [🔥, 🔥]

3️⃣ Третий метод — .reversed

Такой же простой, как и первый. Возвращает обратную последовательность элементов исходной коллекции. Пример:

let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.reversed()
print(b) // [🔥, ❄️, ☀️, 💧, 🔥]

4️⃣ Четвёртый метод — .allSatisfy

Этот метод проверяет, удовлетворяют ли все элементы коллекции заданному условию. Пример:

let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a..allSatisfy { $0 == 🔥 }
print(b) // false

5️⃣ Пятый метод — .contains

Метод проверяет, содержит ли коллекция определённый элемент. Пример:

let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.contains(💧)
print(b) // True

6️⃣ Шестой метод — .prefix

Метод возвращает начальный сегмент коллекции, содержащий указанное количество элементов. Пример:

let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.prefix(3)
print(b) // [🔥, 💧, ☀️]

7️⃣ Седьмой метод — .suffix

Метод похож на предыдущий, только возвращает указанное количество элементов начиная с конца коллекции. Пример:

let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.suffix(2)
print(b) // [❄️, 🔥]

8️⃣ Восьмой метод — .swapAt

Этот метод обменивает местами значения двух элементов в коллекции по их индексам. Пример:

let a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.swapAt(0, 3)
print(b) // [❄️, 💧, ☀️, 🔥, 🔥]

Остальные методы разберём во второй части. Сохраняй и пользуйся 📌
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14😁21
🚀 Новый набор на стажировки в Тинькофф

Стажировка подойдет как для студентов, там и начинающих специалистов. Среди направлений есть Android-разработчик и iOS-разработчик. 😋

На стажировке вас ждёт много интересных и сложных проектов. Стажировка не для строчки в резюме, а для старта в ИТ-карьере. 👨‍💻

💡 Изучайте подробности и отправляйте заявку, дедлайн — 18 декабря: https://fintech.tinkoff.ru/start/
3🔥3
🚀 Какие инновации нас ждут в Swift 6?

В Swift 6, как и в предшественниках, вероятно, будут внесены улучшения в такие области, как синтаксис языка, производительность компилятора и совместимость с различными платформами.

Основное внимание может быть уделено улучшению функций безопасности, оптимизации для ускорения компиляции кода и расширению поддержки новых платформ Apple.

📖 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1🌚1
💬 Более опытные разработчики часто жалуются, что новичкам не хватает «базы». По их мнению, в программисты идут люди без профильного образования, что ведёт к общей деградации. Правы ли они? И что представляет собой эта «база»?

Поделись своим мнением 👇

#холивар
👍82🔥1
🤖 Что нового в Android?

В видео идёт речь о последних требованиях к проверке Google Play, магия с анимацией в Jetpack Compose, простой и безопасный вход в систему на Android, альфа-релиз библиотеки Telecom Library, а также подкасты и статьи, посвященные разработке на Android.

📺 Смотреть

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
FAQ по трудоустройству: разбираем самые популярные вопросы

Каждый, кто хотя бы раз искал работу, сталкивался с массой проблем: «Врать в резюме или не надо?», «@#$%!, вакансия классная, но я не подхожу... Что делать?». Под катом — разбор этих и других популярных вопросов.

🔗 Читать статью
🔗 Зеркало
👍5
очередной #дайджест полезностей для мобильного разработчика

🟣 GPT4 для доработки приложения — как новые функции GPT-4 помогают в ежедневных задачах разработчика.

🟣 Переход на кроссплатформенность — статья рассказывает о переходе команды СберМаркета на кроссплатформенный подход в разработке приложения для доставки еды из ресторанов.

🟣 Размер так важен? — как Spotify отслеживает размеры приложений, почему это является важной задачей, которая может иметь значительные последствия.

🟣 Смертность мобильных игр — компания провела исследование SuperScale, которое показывает, что 83% мобильных игр «умирают» в течение трех лет после их запуска.

🟣 Из Figma во Flutter — статья рассказывает о том, как плагин DhiWise для Figma позволяет преобразовывать дизайны в код Flutter с помощью технологии low-code.
🔥2👍1👏1
🧰 Секреты Kotlin Flow. Уверен, что знаешь как он работает?

Как работает Kotlin Flow, одна из новых функций языка Kotlin для асинхронного программирования. Автор рассказывает о разнице между последовательным и параллельным потоком, а также о том, как использовать операторы flowOn и buffer для управления потоком данных. Статья с примерами кода, которые показывают, как создавать и использовать потоки в Kotlin. Проверь и подтяни свои знания.💡

📖 Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
👨‍💻 Переносим разработку под iOS и macOS на Neovim

Хотите попробовать разработку, используя только Neovim? Эта статья для вас. Автор статьи рассказывает, как установить и настроить различные плагины, чтобы обеспечить функции, такие как автодополнение кода, синтаксический анализ, форматирование, запуск тестов, отладка, создание симуляторов и многое другое. Также затрагивает тему преимущества и недостатка среды вместо Xcode.

Если готовы к приключениям, ознакомиться можно здесь 🔖
🔥3🥱2
Когда решил освоить библиотеку за день:

#memes
😁29👍2
🎓💻 Продолжаем разбирать методы работы с массивами в Swift

Ознакомиться с первой частью можно тут 🔗

Часть вторая 👇

Первый метод — .append

Метод используется для добавления нового элемента в конец массива Пример:


var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.append(☀️)
print(b) // [🔥, 💧, ☀️, ❄️, 🔥, ☀️]

Второй метод — .insert

Метод для вставки нового элемента в массив на указанную позицию. Пример:

var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.insert(💧, at: 2)
print(a) // [🔥, 💧, 💧, ☀️, ❄️, 🔥]

Третий метод — .removeFirst

Используется для удаления первого элемента из упорядоченной коллекции. Пример:

var a = [🔥, 💧, ☀️, ❄️, 🔥]
a.removeFirst()
print(b) // [💧, ☀️, ❄️, 🔥]

Четвертый метод — .dropFirst

Метод в отличие от removeFirst(), не изменяет исходный массив. Вместо этого он создает новый «вид» на исходную коллекцию, исключая указанное количество элементов с начала. Пример:

var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.dropFirst(2)
print(b) // [☀️, ❄️, 🔥]

Пятый метод — .dropLast

Метод такой же, как и предыдущий, только удаляет элементы массива с конца. Пример:

var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.dropLast(2)
print(b) // [🔥, 💧, ☀️]

Шестой метод — .shuffle

Метод используется для перемешивания (или перетасовки) элементов в массиве случайным образом. Пример:

var a = [🔥, 💧, ☀️, ❄️, 🔥]
let b = a.shuffle()
print(b) // [☀️, 🔥, 💧, ❄️, 🔥]

Сохраняй и пользуйся 📌
Please open Telegram to view this post
VIEW IN TELEGRAM
7🥱4
🚀 Избегаем ловушек отмены корутин в Kotlin

В видео автор раскрывает распространенные ошибки при работе с корутинами в Kotlin, особенно в контексте их отмены, подчеркивает важность понимания и правильной реализации. Видео наполнено техническими деталями и практическими советами, идеально подходит для разработчиков, желающих углубить свои знания в Kotlin и корутинах.

Содержание:

00:00 — Начало
00:41 — Ловушка №1
09:23 — Ловушка №2
17:03 — Ловушка №3

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔖 Как получить международный оффер iOS-разработчику?

Доклад Дарьи Шульгиной, основательницы сервиса по поиску работы за рубежом AgileFluent, о развитии международной карьеры. Она делится своим опытом и опытом своей команды по оказанию помощи в поиске работы в разных странах, в первую очередь в Европе. В докладе рассматриваются такие ключевые моменты, как:

– Целесообразность поиска работы за рубежом;
– Факторы, влияющие на предложение работы за рубежом;
– Планирование поиска работы;
– Трудности получения приглашений на собеседование;
– Распространённые ошибки при поиске работы.

Если вы начинающий специалист, или специалист с опытом, и думаете о карьере за рубежом, видео будет полезно для вас. 🌏

🔗 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥21
📱 Свайпы на ScrollView без жестов?

В видео автор рассказывает, как создать Swipe Actions для ScrollView с помощью новых API iOS 17. В SwiftUI вы можете добавить модификатор .swipeActions() к элементам списка. Этот модификатор позволяет добавлять кнопки, которые появляются при свайпе элемента влево или вправо.

Смотреть
👍2
#дайджест полезностей для мобильного разработчика на Android

🔹 Новые API в Jetpack Compose — статья о новых API для адаптивных макетов в Jetpack Compose, современном инструменте для создания нативного пользовательского интерфейса на Android.

🔹 Не все тесты одинаковы — различные типы UI-тестов для Android-приложений и их особенности.

🔹 Миграция с kapt к KSP — как перейти от использования kapt к KSP в проектах на Android. KSP — это альтернатива kapt, которая анализирует код Kotlin напрямую, что ускоряет сборку в два раза.

🔹 События как состояние — критика популярной идеи о том, что события в пользовательском интерфейсе должны быть выражены как состояния, а не как потоки объектов, которые могут быть потреблены компонентами UI.

🔹 In-App Update — как реализовать функцию обновления, которая позволяет активным пользователям обновлять приложение без перехода в Google Play.
2🔥1