tgoop.com »
United States »
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck » Telegram Web
Если вы хотите стать профессионалом в создании мобильных приложений, курсы iOS-разработчика — это отличный старт для вашего карьерного пути. Осваивая Swift, Objective-C и другие ключевые технологии, вы сможете разрабатывать качественные и эффективные приложения для платформы iOS.
Эти курсы предлагают не только теорию, но и практические задания, которые помогут вам быстро овладеть необходимыми навыками и приступить к реальным проектам.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Ключ
-u
(полный вариант --set-upstream
) создаёт в удалённом репозитории ветку, соответствующую локальной и связывает их.Пример:
git push -u origin master
Эта команда используется для отправки закоммиченных файлов в удаленный репозиторий (также известный как GitHub) в указанной ветке.
Используйте эту команду, когда вы впервые отправляете файлы в удаленный репозиторий. Он зафиксирует место, куда вы отправляете эти файлы. И в следующий раз можно будет использовать команду git push.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Чтобы ваше приложение работало быстро и без лагов, проверьте выполнение этих пунктов:
Как оценить результат? Измерьте до и после:
– Время запуска приложения
– Потребление памяти (Android Studio Profiler, Xcode Instruments)
– Размер APK/IPA
– Скорость отклика интерфейса
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера JetBrains официально объявили о выходе CMP 1.8.0, c которой поддержка iOS переходит в статус stable. Это важный этап, поскольку теперь CMP можно всерьез рассматривать как основу для кроссплатформенной мобильной разработки.
В этой статье автор знакомит с обновлением и рассматривает заявленные фишки, а заодно говорит о результатах опытов с CMP на «боевом» проекте.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Собрали лучшее о мобильной разработке. Включаем и смотрим по пути на работу.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Месяцы поиска работы и ноль офферов? Возможно, ты сам саботируешь свой успех. Рассказываем о пяти распространенных ошибках, которые мешают программистам найти работу мечты.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
В этом споре активно участвуют как простые пользователи, так и профессиональные разработчики. Если для первых дело скорее в привычках, удобстве и личных предпочтениях, то вторые приводят серьёзные аргументы в пользу любимых интернет-обозревателей.
Каждый браузер имеет свои козыри: Chrome — бешеную популярность и интеграцию с Google-сервисами, Firefox — открытый исходный код и приватность, Opera — встроенные фишки для разработчиков.
А где же истина? Какой браузер предпочитаете вы? Голосуйте и пишите своё мнение в комментариях
❤️ — Chrome
👍 — FireFox
👏 — Opera
🌚 — другие
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Рассмотрим этот фрагмент кода, который пытается получить цвет темы из локального хранилища устройства iOS:
var color = UserDefaults.standard.string(forKey: "themeColor")!
print(color)
Ответ:
Первая строка извлекает цвет темы из user defaults. Этот метод, однако, возвращает optional (поскольку themeColor может быть не определен). Если ключ не найден, возвращается nil, что приводит к крашу:
fatal error: unexpectedly found nil while unwrapping an Optional value
Это происходит потому, что в первой строке используется ! для force unwrap optional, которое теперь nil. Force unwrapping должно использоваться только тогда, когда вы на 100% уверены, что значение не nil.
Чтобы исправить это, вы можете использовать optional binding для проверки, найдено ли значение для ключа:
if let color = defaults.stringForKey("themeColor") { print(color)}
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Java / Kotlin разработчик (Software Engineer) — до 450 000 ₽, гибрид (Москва)
Junior iOS developer/Младший iOS разработчик — до 150 000 ₽, гибрид (Москва)
iOS разработчик — до 450 000 ₽, гибрид (Москва, Санкт-Петербург)
Android-разработчик — от 150 000 ₽, офис (Москва, Санкт-Петербург)
Android Developer — от 4 500 до 5 500 €, удалёнка
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
1. Получение типа класса через функцию
::class
Функция
::class
возвращает объект KClass
, который содержит информацию о типе класса во время выполнения.class Person(val name: String, val age: Int)
fun main() {
val person = Person("John", 30)
println(person::class) // выводит "class Person"
}
2. Получение типа класса через функцию
javaClass
Функция
javaClass
возвращает объект Class
, который содержит информацию о типе класса во время выполнения.class Person(val name: String, val age: Int)
fun main() {
val person = Person("John", 30)
println(person.javaClass) // выводит "class Person"
}
3. Получение типа класса через функцию
::class.java
Вызов функции
::class.java
на объекте типа KClass
возвращает объект Class
, который содержит информацию о типе класса во время выполнения.class Person(val name: String, val age: Int)
fun main() {
val person = Person("John", 30)
println(person::class.java) // выводит "class Person"
}
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin давно перерос статус языка «только для Android». Благодаря технологии Kotlin Multiplatform (KMP), он позволяет создавать приложения, которые работают на JVM, iOS, macOS, вебе и других платформах, сохраняя единый код бизнес-логики.
В статье — без лишнего пафоса о том, как устроена архитектура KMP, чем она отличается от Flutter и React Native, как работает сборка, где границы общего и платформенного кода и почему это решение подходит командам, стремящимся к эффективности без компромиссов.
#cвежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Проблема: Долгая загрузка данных, лишние запросы и падение приложения при плохом интернете.
Используйте
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
Запутались в настройке 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
Каждый разработчик мечтает попасть в топовую компанию или работать над крутым проектом. Но как пройти этот путь от первых строчек кода до оффера мечты?
Расскажите свою историю в комментариях:
– О какой работе вы мечтали?
– Как готовились к собеседованиям?
– С какими трудностями столкнулись?
– Что в итоге помогло получить оффер?
А вот вдохновляющая история от нашего подписчика:
Я годами хотел попасть в команду мобильной разработки крупного fintech-стартапа. После сотни прочитанных статей и десятка пет-проектов я наконец получил собеседование. На техническом этапе я запаниковал и забыл, как работает LiveData в Android. Но честно признался: «Сейчас не помню, но я разберусь и пришлю ответ позже». Каково же было удивление, когда мне сказали, что честность и желание учиться — именно то, что они искали! Теперь я тут работаю.
Ваш опыт важен — делитесь историями и вдохновляйте других
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы начинали автоматизировать UI-тесты под iOS, то наверняка заметили, что информации по фреймворку XCUITest в сети не так много, особенно на русском языке.
Эта статья — краткое руководство по основам автоматизации на XCUITest. Здесь автор постарался собрать ключевые моменты, которые помогут вам сделать первые шаги в тестировании iOS-приложений.
#cвежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Смешные новости про IT теперь в одном канале
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции