tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
Что выведет код?
Anonymous Quiz
32%
Это Int, Это Double
27%
Это Int, Это не Double
30%
Это не Int, Это не Double
11%
Ошибка компиляции
❤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
❤5
🔌 Реализация оффлайн-режима
Пользователи часто остаются без интернета, но хотят продолжать работать с приложением. Разберём, как грамотно реализовать оффлайн-режим.
⚙️ Техники реализации
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
😁12❤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