Проблема: Долгая загрузка данных, лишние запросы и падение приложения при плохом интернете.
Используйте
Room
(Android) или CoreData
(iOS) для локального хранения:// Android + Kotlin
@Dao
interface UserDao {
@Query("SELECT * FROM users")
fun getUsers(): Flow<List<User>>
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun saveUsers(users: List<User>)
}
// iOS + Swift
func saveUsers(_ users: [User]) {
let context = persistentContainer.viewContext
users.forEach { user in
let entity = UserEntity(context: context)
entity.id = user.id
entity.name = user.name
}
try? context.save()
}
Делите данные на страницы:
// iOS
func fetchWithRetry(maxAttempts: Int = 3) async throws -> Data {
for attempt in 1...maxAttempts {
do {
return try await fetchData()
} catch {
if attempt == maxAttempts { throw error }
try await Task.sleep(nanoseconds: 1_000_000_000 * UInt64(attempt))
}
}
fatalError("Unreachable")
}
// Android + OkHttp
val client = OkHttpClient.Builder()
.cache(Cache(cacheDir, 10 * 1024 * 1024)) // 10 MB
.build()
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
Запутались в настройке Firebase для Android/iOS? Используйте этот промпт, чтобы быстро разобраться с типовыми задачами и избежать распространённых ошибок:
Provide a step-by-step guide for setting up Firebase in a mobile
1. Initial setup for Android/iOS
2. Typical configuration mistakes and how to avoid them
3. Best practices for structuring Firestore/Firebase Auth
4. Performance optimization tips
–
Suggest solutions for common Firebase authentication errors
(если столкнулись с проблемами логина)–
Compare Realtime Database vs Firestore for a chat app
(если выбираете базу данных)–
Provide code samples for offline mode implementation
(для работы без интернета)Добавьте
Explain like I'm a junior developer
, если нужно максимально простое объяснение.А как вы настраиваете Firebase? Делитесь лайфхаками в комментариях
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2😁1
Каждый разработчик мечтает попасть в топовую компанию или работать над крутым проектом. Но как пройти этот путь от первых строчек кода до оффера мечты?
Расскажите свою историю в комментариях:
– О какой работе вы мечтали?
– Как готовились к собеседованиям?
– С какими трудностями столкнулись?
– Что в итоге помогло получить оффер?
А вот вдохновляющая история от нашего подписчика:
Я годами хотел попасть в команду мобильной разработки крупного fintech-стартапа. После сотни прочитанных статей и десятка пет-проектов я наконец получил собеседование. На техническом этапе я запаниковал и забыл, как работает LiveData в Android. Но честно признался: «Сейчас не помню, но я разберусь и пришлю ответ позже». Каково же было удивление, когда мне сказали, что честность и желание учиться — именно то, что они искали! Теперь я тут работаю.
Ваш опыт важен — делитесь историями и вдохновляйте других
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Если вы начинали автоматизировать UI-тесты под iOS, то наверняка заметили, что информации по фреймворку XCUITest в сети не так много, особенно на русском языке.
Эта статья — краткое руководство по основам автоматизации на XCUITest. Здесь автор постарался собрать ключевые моменты, которые помогут вам сделать первые шаги в тестировании iOS-приложений.
#cвежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2😁2🔥1
🚨 Смешные новости про IT теперь в одном канале
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
В карточках рассказали о действиях, которые мешают найти работу в ИТ, особенно в начале карьеры.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🥱4❤1🤩1👾1
В этой головоломке спрятаны 9 терминов из мира мобильной разработки.
Правила просты:
— Найдите 9 слов в сетке (слова идут по горизонтали)
— Напишите в комментариях, какие слова вы нашли
— Объясните один из терминов так, чтобы даже джун понял
Погнали
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2😁2❤1🔥1
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что выведет код?
Anonymous Quiz
7%
Processing 2 Processing 4 Result: 6 Processing 6
67%
Processing 2 Processing 4 Processing 6 Result: 6
11%
Result: 6
15%
Код упадет с ошибкой
❤2🤔2
iOS Разработчик — от 4000 до 8000 $, удалёнка
Flutter-разработчик — до 3 200 $, удалёнка
iOS-разработчик — гибрид (Москва)
React Native разработчик — гибрид (Москва)
iOS-разработчик — гибрид (Новосибирск, Томск)
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Проблема:
При быстром скролле лента тормозит, а видео подгружаются с задержкой. Как сделать плавную работу?
Решение:
// Настройка PagingSource
class VideoPagingSource : PagingSource<Int, Video>() {
override suspend fun load(params: LoadParams<Int>): LoadResult<Int, Video> {
val page = params.key ?: 0
return try {
val response = api.getVideos(page)
LoadResult.Page(
data = response.videos,
prevKey = if (page == 0) null else page - 1,
nextKey = if (response.isLastPage) null else page + 1
)
} catch (e: Exception) {
LoadResult.Error(e)
}
}
}
func loadMoreVideosIfNeeded(currentIndex: Int) {
if currentIndex == videos.count - 2 { // Предзагрузка при приближении к концу
loadNextPage()
}
}
val videoViews = mutableListOf<VideoView>().apply {
repeat(3) { add(VideoView(context)) } // Только 3 плеера в памяти
}
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Обфускация — важная часть защиты Android-приложений. Однако даже R8 или ProGuard не гарантируют высокой устойчивости к тому что ваш код не взломают. Стандартная настройка обфускации довольно простая и нацелена на уменьшение размера сборки, а не повышение защиты от взлома.
В этой статье автор разбирает как происходит обфускация в стандартной конфигурации, как можно её сделать сложнее для разбора, а по итогу и уникальной для каждой сборки.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
ProgressUI — это пакет SwiftUI, реализующий легко настраиваемый круговой индикатор прогресса. Он поддерживает динамическое окрашивание в зависимости от уровня прогресса, а также предлагает несколько вариантов размеров.
Благодаря плавной анимации, этот индикатор идеально подходит для отображения процессов, состояний загрузки или индикаторов состояния в приложениях для iOS, macOS, watchOS, visionOS и tvOS.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5