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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Подборка лучших статей «Библиотеки программиста» за ноябрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🗺️ Дорожная карта Go-разработчика в 2023 году
🧑‍💻 6 карьерных советов программисту
⚖️ 25 курсов, книг и подкастов для развития критического мышления
🐍🎨 Генерация красивых QR-кодов с помощью Python
🔈16+ лучших нейронок для синтеза речи
FAQ по трудоустройству: разбираем самые популярные вопросы
👨‍💻 7 типов «сложных» разработчиков
Дорожная карта DevOps-инженера в 2023 году
❤️🙏 Путь к мечте: как инвалидность не помешала стать разработчиком и продолжить борьбу за здоровье
👀 6 способов привлечь внимание работодателя
🤖📜 Искусственный интеллект: краткая история
🔤 Азбука SQL в примерах (часть 1 + часть 2)
🔢 Как научиться решать сложные задачи
🏆 Самые популярные языки программирования 2023
📰 10 признаков фейковой вакансии
🏃 Самоучитель по Go для начинающих (часть 1 + часть 2)
⚛️ 45 вопросов для подготовки к собеседованию по React
🐍 5 задач для подготовки к собеседованию по Python
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
👍1🔥1🎉1
#джайджест полезностей мобильного разработчика

🔹 SberPay в своё приложение — как добавить и какие преимущества.

🔹 FlexibleBottomSheet — расширенный нижний экран для Jetpack Compose.

🔹 Библиотека foSho — создаём безопасную и эффективную навигацию в Jetpack Compose.

🔹 Не делайте так — какие практики и действия вредят качеству кода.

🔹 Inline функции — что это такое и зачем они нужны?

🔹 Мастер в функциях — какие функции в Kotlin являются необходимыми для каждого.

🔹 Baseline Profiles — создаём профиль для ускорения приложения.
👍3
💥 Подборка на выходные, кто не знает чем заняться

🎬 «Убийцы цветочной луны» — фильм рассказывает о трагической истории несправедливости, которая произошла в Оклахоме в начале XX века, когда местные индейцы были убиты за то, что нашли нефть на своей земле. В главных ролях сыграли Леонардо ДиКаприо, Роберт Де Ниро, Лили Гладстоун.

🎙️ Подкаст «Секреты собеседований» — различные аспекты собеседований в IT-секторе, включая технические и нетехнические этапы, подготовка резюме и опыт работы с тестовыми заданиями. Гость делится своим опытом работы в разных компаниях и процессами собеседований, включая уникальные вызовы и форматы тестовых заданий.

📖 «Облегчаем путь до мидла» — iOS-разработчик в компании Точка, делится своим опытом перехода из HR в разработку и предлагает советы для ускорения профессионального роста.

📺 «Как работает операционная система» —  Кирилл Розов, руководитель группы Android-разработки в Тинькофф, рассказывает что такое операционная система, граница между ОС и встроенным софтом, как создаются и многое другое.

📱 «Dime» — рассмотрите бесплатный открытый трекер расходов для iOS. Из технических фич — простой, но красивый дизайн, синхронизация с iCloud, кастомные напоминания, биометрическая аутентификация, быстрые действия с домашнего экрана, темная тема, виджеты.
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1🎉1
🖼️ Легко создаём ассеты для своих проектов

AssetsGen — приложения для разработчиков iOS и Android, которое позволяет легко создавать и управлять ассетами. С помощью AssetsGen вы сможете:

– Генерировать ассеты разных размеров и форматов для разных устройств и платформ;
– Экспортировать ассеты в Xcode и Android Studio.

#полезное
1
🚀 Скрытая фишка typealias

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

💡 Пример:

typealias Point = (x: Int, y: Int)

Но здесь есть но. Если мы будем использовать Double, то код не сбилдится.

typealias Point = (x: Int, y: Int)
let pointUsingInt = Point(x: 1, y: 2)
let pointUsingDouble = Point (x: 3.0, y: 4.0)

И здесь нас спасут generic`и!

typealias Point<T> = (x: T, y: T)

Теперь наш код будем принимать Int и Double.

Но мы можем улучшить код. Ограничиваем ввод только числовым типом:

typealias Point<T: Numeric> = (x: T, y: T)

В чём ещё полезность? Мы можем убрать лишний код в completionHanlder:

typealias CompletionHandler<T> = (Result<T, Error>) –> Void

func fetchData(_ completion: @escaping CompletionHandler<Data>) { }

Выглядит лучше! Осваивайте новую фишку и используйте на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🥱32😁1
📥 iMessage изнутри

В статье вы узнаете внутреннее устройство iMessage, изученного автором в процессе работы над pypush — опенсорсным проектом по воссозданию реализации iMessage. Автор простым языком расссказывает о системе получения сообщений от Apple. От APNs до шифрования и аутентификации.

Ознакомиться со статьей можно тут 🔗
Github pypush ⚙️
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🔥1🎉1
🕸🤖 Новая основа ИИ для Android

Статья рассказывает о Gemini, новой мощной модели искусственного интеллекта от Google для Android. Gemini предназначена для работы в различных системах и представлена в трёх размерах: Ultra, Pro и Nano.

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

Нас ждёт интеграция с новой системой Android AICore в Android 14, обещающая новые горизонты в использовании AI на мобильных устройствах.

📘 Читать статью полностью
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👨‍💻 Функциональное программирование на Dart

Обширное видео по функциональному программированию в Dart, языке программирования, поддерживающем несколько парадигм. Как более эффективно использовать функции функционального программирования, сравнение объектно-ориентированного и функционального подхода к созданию иерархий классов и многое другое.

📖 Содержание:

00:00 — Императивное программирование против функционального
14:12 — Иерархии классов ООП
17:05 — Алгебраические типы данных
23:35 — Обработка ошибок с помощью Try-Catch
27:27 — Обработка ошибок с помощью Either

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
2🌚1
🧠Чему вы бы хотели научиться?

Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?

За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.

👉Опрос по ссылке👈
😁3🔥1
большой #дайджест полезностей по Kotlin и Swift

Swift
🔸 Swift Utilities — интегрируем SwiftUI в UIKit.

🔸 GPT for Apple — набор различных GPT, специализирующиеся на определенных фреймворках Apple.

🔸 Swift Macro — как скомпилировать макрос в бинарный файл и добавить его в спецификацию пода.

🔸 SFSafariViewController — открываем веб-страницы внутри приложения.

🔸 Интерактивные виджеты — Взаимодействуем с виджетами в SwiftUI.

Kotlin

🔹 Dynamic Features — как динамически загружать части функционала приложения в зависимости от потребностей пользователя или возможностей устройства.

🔹 Советы для новеньких — интервью с глобальными экспертами Google по разработке, которые делятся своими любимыми инструментами и советами для начинающих разработчиков.

🔹 Кража API ключей — использование различных инструментов для анализа сетевых запросов, декомпиляция и извлечения скрытых данных и как и предотвратить подобные атаки.

🔹 KSP2 — как настроить и использовать в своих проектах, и какие преимущества он дает.

🔹 CountryCP — библиотека для выбора страны и телефонного кода для Jetpack Compose.
1🔥1🎉1
🗂 Имитируем наследование в структурах

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

Примеры кода, иллюстрации и сама статья по ссылке 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
#вопросы_с_собеседований

🤖 Kotlin

Зачем нужен класс Nothing в Kotlin?

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

Рассмотрим несколько сценариев, когда Nothing может быть использован:

1. Функции, выбрасывающие исключение:

fun throwError(): Nothing {
throw RuntimeException(«This function always throws an exception.»)
}

В этом примере функция throwError возвращает тип Nothing, поскольку она всегда выбрасывает исключение и не возвращает нормальное значение.

2. Бесконечные циклы:

fun infiniteLoop(): Nothing {
while (true) {
// код, который никогда не завершится
}
}

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

3. Процессы, которые не могут завершиться нормально:

fun launchRocket(): Nothing {
// код запуска ракеты, который не может завершиться нормально
}

Функции, представляющие процессы, которые не могут завершиться нормально, могут использовать Nothing в качестве типа возвращаемого значения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in the widget
VIEW IN TELEGRAM
👍3
🗺️ Дорожная карта по Kotlin Multiplatform на 2024 год

В статье команда JetBrains описывает свои планы на следующий год. Они планируют сделать все основные API и компоненты Jetpack Compose мультиплатформенными, улучшить производительность и доступность на iOS, предоставить общий API для работы с ресурсами и решение для мультиплатформенной навигации. Также идёт речь о инструменте для всех целей и кодовых баз.

Все подробности можно узнать здесь 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🚨 Новые требования Apple к сторонним SDK

Apple хочет, чтобы разработчики и пользователи были в курсе того, как сторонние SDK собирают и используют данные, и ввела новые функции для повышения прозрачности и безопасности: privacy manifests и signatures.

На странице Apple Developer приведён список SDK, для которых будут использоваться новые правила. Для каждого вида данных понадобится словарь NSPrivacyCollectedDataType, значения должны соответствовать этому списку.
2
📁💡 Где программисту взять идеи для портфолио

Портфолио — это классный способ впечатлить работодателей. Однако у большинства айтишников портфолио состоит из примерно одинаковых работ. Как правило, это «тудушки», калькуляторы и что-то в таком роде. Но таким удивить уже сложно.

Поэтому давайте разберемся, как собрать классное портфолио, а главное — где взять интересные идеи для пет-проектов.

🔗 Читать статью
1
📉 Кризис в IT: 35% российских IT-специалистов теряют доходы

Опрос Российской ассоциации электронных коммуникаций (РАЭК) среди IT-профессионалов также показывает разрыв между ростом доходов IT-компаний и уменьшением доходов сотрудников.

Несмотря на рост прибыли компаний, многие сотрудники, особенно молодые, сталкиваются с уменьшением заработка из-за колебаний валют и высокой инфляции.

💬 Расскажите, как поживают ваши доходы?

#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔3🥱1
🎉 Xcode обновился до версии 15.1

Из важного:
@IBDesignable деприкейтед
– Запуск Xcode Cloud вручную
– Новая функция тестирования в StoreKit Testing
– Макросы в Playground

Со всеми изменениями можно ознакомиться здесь 🗺
Please open Telegram to view this post
VIEW IN TELEGRAM
2🥱2👾2
#дайджест полезностей мобильного разработчика

🔥 Почему Flutter? — почему он стал таким популярным, преимущества и недостатки.

🔥 Плоский дизайн — переход от плоского дизайна, который стал популярным после внедрения iOS 7 от Apple в 2013 году, к более детализированным и трехмерным элементам.

🔥 Yandex Cup 2023 — разбор задачи отборочного этапа.

🔥 На запястье — стоит ли создавать приложение для смарт часов?

🔥 Неэффективность pull request — почему стандартный рабочий процесс с PR в GitHub часто приводит к большим запросам на включение изменений, которые замедляют процесс разработки и уменьшают качество кода.

🔥 Gradle 8 в Android — перенос приложения на версию 8.1.1, для чего и какие проблемы вас ждут.

🔥 Догмы разработки — как привычные практики программирования могут превращаться в непродуктивные догмы и как критическое мышление может спасти ваш проект от 'модного' программирования.
4👍3