tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
Перед тем как браться за новый проект или крупное обновление — сохраните этот чек-лист. Он поможет не упустить важное.
Какие важные пункты мы забыли? Пишите в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Формы являются фундаментальным элементом любого современного приложения.
Независимо от того, создаете ли вы корпоративный портал, социальную сеть или электронную коммерцию — работа с пользовательскими данными через формы неизбежна.
В статье автор подробно рассмотрит различные подходы к работе с формами во Flutter, начиная с базовых инструментов и заканчивая современными решениями.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1🥱1
Собрали лучшее о мобильной разработке. Включаем и смотрим по пути на работу.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12
Лето — лучшее время для сплава. Поэтому, если вы пока не в отпуске, давайте устроим короткий сплав по асинхронным потокам данных.
Kotlin Flow — это API для работы с асинхронными потоками данных, построенное поверх корутин.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🔥 Сегодня стартует курс по AI-агентам!
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
Приготовили для вас дайджест по актуальному из мира iOS, Android и кроссплатформы.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Что выведет код?
Anonymous Quiz
32%
Это Int, Это Double
27%
Это Int, Это не Double
31%
Это не Int, Это не Double
10%
Ошибка компиляции
❤2👏1
Выбор между IDE и текстовым редактором - один из важных вопросов, на который должен ответить каждый разработчик.
IDE, как правило, включает в себя инструменты отладки, системы контроля версий и инструменты управления проектами, установленные в единой среде, помимо инструментов редактирования текста.
В то время как текстовый редактор сравнительно меньше по размеру и имеет специальные инструменты только для текста.
Что же лучше для программирования: текстовый редактор или IDE? Голосуйте и пишите своё мнение в комментариях
❤️ — текстовый редактор
👍 — IDE
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤4😁2
iOS Developer — от 200 000 до 350 000 ₽, удалёнка
Junior Android Developer — удалёнка
Android-разработчик — от 200 000 ₽, удалёнка
IOS разработчик (Middle) — удалёнка
Android Developer (Middle+/Senior, Kotlin Multiplatform) — до 350 000 ₽, удалёнка
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Анонимный класс — это класс, которые явно не объявлен с помощью
class
, наследуется от заданного класса или реализует заданный интерфейс. Анонимный класс не всегда является синглтоном. Анонимный класс создается каждый раз при вызове соответствующего конструктора и используется только в контексте, где был создан.
При этом каждый экземпляр анонимного класса имеет свое уникальное состояние и может отличаться от других экземпляров того же анонимного класса. В Kotlin анонимный класс создается следующим образом:
val obj = object : SuperClassOrInterface() {
// implementation here
}
Объекты анонимных классов полезны для одноразового использования.Экземпляры анонимных классов называют анонимными объектами, потому что они объявляются выражением, а не именем.
Анонимный объект начинается с ключевого слова
object
.• можно задавать свойства, функции, блоки инициализации;
• можно наследоваться от других классов и реализовывать интерфейсы;
• нельзя создавать конструкторы (как основные, так и вторичные).
Ключевое слово
object
позволяет одновременно объявить класс и создать его экземпляр (т.е. объект). При этом применять его можно по-разному:•
object Name
— это объявление объекта(оbject declaration), реализация паттерна Singleton;•
companion object
— это объект-компаньон внутри класса (также Singleton);•
object
— это объект-выражение (анонимный объект/object expression), не Singleton.#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1🌚1
Да кто такой этот ваш 2D-скролл? Зачем он нужен, если не делать аналог excel? На самом деле, двумерный скролл нужен в огромном количестве сценариев использования мобильных приложений.
В этой статье автор рассмотрит, как на Flutter можно реализовать двумерный скролл с помощью решений из коробки, почему они могут не подойти и что тогда делать.
Подробно разберёт, как сделать собственную производительную реализацию 2D-скролла, и оценит влияние на производительность на примере видеоредактора Yappy — приложения вертикальных видео.
👉 Читать статью
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
🔌 Реализация оффлайн-режима
Пользователи часто остаются без интернета, но хотят продолжать работать с приложением. Разберём, как грамотно реализовать оффлайн-режим.
⚙️ Техники реализации
1. Локальное кэширование данных
• Android (Room):
• iOS (Core Data):
2. Очередь запросов
Сохраняйте действия пользователя при отсутствии сети:
3. Умная синхронизация
Используйте WorkManager (Android) или Background Tasks (iOS) для фоновой синхронизации.
🚫 Чего избегать
1. Хранения конфиденциальных данных без шифрования
2. Бесконечного накопления несинхронизированных данных
3. Игнорирования конфликтов данных при синхронизации
💡 Продвинутые техники
1. Дельта-синхронизация – передавайте только изменения
2. Конфликт-менеджмент – стратегии разрешения противоречий
3. Прогрессивная загрузка – сначала кэш, потом обновления
Как вы реализуете оффлайн-режим? Делитесь решениями в комментариях💬
🐸 Библиотека мобильного разработчика
#буст
Пользователи часто остаются без интернета, но хотят продолжать работать с приложением. Разберём, как грамотно реализовать оффлайн-режим.
1. Локальное кэширование данных
• Android (Room):
@Entity
data class CachedData(@PrimaryKey val id: String, val content: String)
@Dao
interface CacheDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insert(data: CachedData)
}
• iOS (Core Data):
let context = persistentContainer.viewContext
let entity = NSEntityDescription.insertNewObject(forEntityName: "CachedData", into: context)
entity.setValue(content, forKey: "content")
try? context.save()
2. Очередь запросов
Сохраняйте действия пользователя при отсутствии сети:
class OfflineQueue {
private val queue = ConcurrentLinkedQueue<() -> Unit>()
fun addToQueue(action: () -> Unit) {
queue.add(action)
}
fun processQueue() {
while (queue.isNotEmpty()) {
queue.poll()?.invoke()
}
}
}
3. Умная синхронизация
Используйте WorkManager (Android) или Background Tasks (iOS) для фоновой синхронизации.
1. Хранения конфиденциальных данных без шифрования
2. Бесконечного накопления несинхронизированных данных
3. Игнорирования конфликтов данных при синхронизации
1. Дельта-синхронизация – передавайте только изменения
2. Конфликт-менеджмент – стратегии разрешения противоречий
3. Прогрессивная загрузка – сначала кэш, потом обновления
Как вы реализуете оффлайн-режим? Делитесь решениями в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
🔌 Реализация оффлайн-режима
Пользователи часто остаются без интернета, но хотят продолжать работать с приложением. Разберём, как грамотно реализовать оффлайн-режим.
⚙️ Техники реализации
1. Локальное кэширование данных
Android (Room):
iOS (Core Data):
2. Очередь запросов
Сохраняйте действия пользователя при отсутствии сети:
3. Умная синхронизация
Используйте WorkManager (Android) или Background Tasks (iOS) для фоновой синхронизации.
🚫 Чего избегать
1. Хранения конфиденциальных данных без шифрования
2. Бесконечного накопления несинхронизированных данных
3. Игнорирования конфликтов данных при синхронизации
💡 Продвинутые техники
1. Дельта-синхронизация – передавайте только изменения
2. Конфликт-менеджмент – стратегии разрешения противоречий
3. Прогрессивная загрузка – сначала кэш, потом обновления
Как вы реализуете оффлайн-режим? Делитесь решениями в комментариях💬
🐸 Библиотека мобильного разработчика
#буст
Пользователи часто остаются без интернета, но хотят продолжать работать с приложением. Разберём, как грамотно реализовать оффлайн-режим.
1. Локальное кэширование данных
Android (Room):
@Entity
data class CachedData(@PrimaryKey val id: String, val content: String)
@Dao
interface CacheDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insert(data: CachedData)
}
iOS (Core Data):
let context = persistentContainer.viewContext
let entity = NSEntityDescription.insertNewObject(forEntityName: "CachedData", into: context)
entity.setValue(content, forKey: "content")
try? context.save()
2. Очередь запросов
Сохраняйте действия пользователя при отсутствии сети:
class OfflineQueue {
private val queue = ConcurrentLinkedQueue<() -> Unit>()
fun addToQueue(action: () -> Unit) {
queue.add(action)
}
fun processQueue() {
while (queue.isNotEmpty()) {
queue.poll()?.invoke()
}
}
}
3. Умная синхронизация
Используйте WorkManager (Android) или Background Tasks (iOS) для фоновой синхронизации.
1. Хранения конфиденциальных данных без шифрования
2. Бесконечного накопления несинхронизированных данных
3. Игнорирования конфликтов данных при синхронизации
1. Дельта-синхронизация – передавайте только изменения
2. Конфликт-менеджмент – стратегии разрешения противоречий
3. Прогрессивная загрузка – сначала кэш, потом обновления
Как вы реализуете оффлайн-режим? Делитесь решениями в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16❤2
Путаетесь в настройке пайплайнов? Этот промпт поможет автоматизировать сборку и публикацию приложений.
Промпт:
Create a complete CI/CD setup for mobile apps using GitHub Actions/Fastlane with:
1. Automated build and testing workflow
2. Code signing best practices
3. Beta distribution (Firebase/TestFlight)
4. Production release automation
5. Version bumping strategies
Provide YAML configuration samples and troubleshooting tips for common issues.
Варианты уточнений:
Add multi-module build optimization
Implement automatic changelog generation
Compare different CI services (Jenkins vs CircleCI vs GitHub Actions)
Add App Store Connect API integration
Cовет:
Укажите "For [Android/iOS/Cross-platform]" для таргетированных решений
Пример запроса:
# Нужно:
# - Автосборку по тегам
# - Публикацию в Firebase App Distribution
# - Проверку качества кода
# - Уведомления в Slack
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Опыт внедрения Kotlin Multiplatform
В этом материале автор расскажет, почему выбрал KMP, как погружался в iOS c опытом в Android и как прошло внедрение этого фреймворка.
👉 Читать статью
🐸 Библиотека мобильного разработчика
#свежак
В этом материале автор расскажет, почему выбрал KMP, как погружался в iOS c опытом в Android и как прошло внедрение этого фреймворка.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🌚2
🧗 Как продвинуть резюме в ТОП на HeadHunter
Представим ситуацию: вы обновили резюме, а просмотров ноль. В такие моменты нужно понимать, что проблема не в вас — а в том, как вы «продаете» себя системе.
👉 Читать статью
🐸 Библиотека мобильного разработчика
#свежак
Представим ситуацию: вы обновили резюме, а просмотров ноль. В такие моменты нужно понимать, что проблема не в вас — а в том, как вы «продаете» себя системе.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6😁5