Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.83K subscribers
1.45K 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
🆕 Бесплатный GPT-4 теперь на iOS <//>

Microsoft Copilot вышел для iOS и iPadOS. Приложение предоставляет доступ к Microsoft Copilot (ранее Bing Chat) и работает аналогично мобильному приложению ChatGPT. Также пользователи получают доступ ИИ‑модели DALL‑E 3, с помощью которой можно создавать изображения.

Версия Microsoft Copilot для iOS и iPadOS имеет все функции, что были у десктоп-версий Copilot — возможность задавать вопросы, составлять электронные письма и резюмировать тексты. Microsoft Copilot создан на ИИ‑модели GPT-4 в отличие от ChatGPT, основанного на GPT-3.5.
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🧱 Поспешил — телефон в кирпич превратил <//>

Apple выпустила вторые бета-версии iOS 17.3, iPadOS 17.3, macOS 14.3, watchOS 10.3 и tvOS 17.3. Обновления доступны для разработчиков.

Пользователи, которые успели поставить обновление на iPhone, столкнулись с критическим багом: смартфон зависает на загрузочном экране и не включается. Apple уже откатила апдейт: его больше нельзя поставить «по воздуху».

По одной из версий, проблема затрагивает устройства с настроенной функцией Back Tap («Коснуться сзади») для быстрого запуска функций двойным или тройным касанием задней поверхности iPhone. Вероятно, если отключить Back Tap, обновление установится корректно.

Если вы столкнулись с этой проблемой, то:
1. Скачайте IPSW-файла iOS 17.3 Beta 1
2. Переведите телефон в режим восстановления и подключите к Mac
3. Используйте iMazing для восстановления прошивки
👍3👾3🔥1
📊 Согласно данным Upgraded Points, каждый седьмой сотрудник на удаленке продуктивно работают лишь 3-4 в день. Люди не возвращаются в офисы, потому что у них есть возможность отдыхать дома.

Как вы считаете, люди правда тратят по 3-4 часа на работу?
🤔4🥰3👍1👾1
📈 Нужно больше памяти! <//>

Понимание JVM критично для серьезных разработчиков Android, особенно для оптимизации производительности и решения проблем, когда приложения замедляются.

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

➡️ Смотреть доклад 📺
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥1
🛡️ Безопасный #дайджест

✋️ Объяснение, почему биометрическая аутентификация важна для защиты данных и конфиденциальности, а также рассматривание различных типов биометрической аутентификации. Изучаем тут 🔗

🚀 Предовращаем реверс-инжиниринг и защитаем важные данные приложения.

😔 Как избежать утечек API ключей и других конфиденциальных данных? В статье рассматриваются такие методы, как использование пакета flutter_secure_storage, который обеспечивает хранение данных в защищенном хранилище операционной системы, таком как Keystore на Android и Keychain на iOS.

▶️ Обзор 10 самых распространенных угроз безопасности мобильных приложений по версии OWASP включая неправильное использование платформы, небезопасное хранение данных и небезопасную передачу данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Я в 10 лет: ищу клавишу на клавиатуре, начиная думать, что её нет
Дети сейчас:
👍21
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in the widget
VIEW IN TELEGRAM
🔊 Blackberry возвращается? <//>

Clicks Creator Keyboard выпустили чехол для iPhone с встроенной клавиатурой, похожей на те, что были у BlackBerry. Clicks не использует Bluetooth и не содержит аккумулятора, а получает питание непосредственно от смартфона. Согласно сайту Clicks, чехол поддерживает сквозную быструю зарядку на iPhone 15 Pro.

Команда проекта ещё работает над мобильным приложением-компаньоном, которое скоро появится в App Store и «со временем будет привносить в клавиатуру новые возможности».

Чехлы Clicks Creator Keyboard уже доступны для предзаказа в двух вариантах цветов. Цена удовольствия — $139 🤑
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43😁2🔥1
👨🏻‍💻 Ладно, за работу <//>

Большой видео-курс по подготовке к собеседованию на iOS разработчика. В нем создается макет приложения по работе с списком подписчиков GitHub через сетевой запрос. Проект создается с нуля, вместе с дизайном. Примечательно, что:

— UI написан программно
— Выходит полноценное приложение
— Без сторонних библиотек
— Поддержка 15, 16 и 17 версий iOS

Видео длится более 16 часов, поэтому разбивайте на части, и бегом готовиться к собеседованию 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥72
#вопросы_с_собеседований

💻 Swift

В чем разница Weak и Unowned в Swift?

Weak (Слабая ссылка):

weak используется, когда ссылка на объект не должна увеличивать счетчик ссылок объекта.
Если объект, на который указывает weak ссылка, был освобожден, weak ссылка автоматически становится nil.
Опциональный тип используется для weak ссылок, так как они могут быть автоматически устанавливаемыми в nil.

class Person {
var apartment: Apartment?
}

class Apartment {
weak var tenant: Person?
}

Unowned (Неудерживаемая ссылка):

unowned также не увеличивает счетчик ссылок объекта, но предполагается, что объект, на который указывает unowned ссылка, всегда существует (не может быть nil).
Если объект, на который указывает unowned ссылка, был освобожден, попытка доступа к этой ссылке приведет к краху приложения.
Используется, когда можно гарантировать, что объект, на который указывает ссылка, будет существовать до тех пор, пока существует unowned ссылка.

class Customer {
var creditCard: CreditCard?
}

class CreditCard {
unowned var owner: Customer
}

Выбор между weak и unowned зависит от сценария использования. Если объект, на который указывает ссылка, может быть освобожден и ссылка может стать nil, то используйте weak. Если вы уверены, что объект всегда будет существовать, используйте unowned. Ошибочное использование unowned в случае, когда объект может быть освобожден, приведет к краху приложения из-за доступа к освобожденной памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4👍2
🎉 Ну, дождались(почти) <//>

Официально: продажи Apple Vision Pro стартуют 2 февраля. Гарнитура смешанной реальности станет доступна для предзаказа 19 января, а уже 2 февраля появится в продаже — но только в США.

Готовы разбивать копилку? 🤠
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🎉2
🚮 Сохраняем чистоту <//>

Статья предлагает 10 советов по написанию чистого кода на Kotlin для разработки приложений в 2024 году. Некоторые из советов это:

– организацию файлов проекта
– использование именования, которое обеспечивает немедленное понимание содержания и цели файла
– использование SOLID-принципов для создания высококачественного кода, который легко тестируется и поддерживается.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Очередной мобильный #дайжест по Flutter

📊Как структурировать область использования провайдеров в Flutter-проекте, использующем пакет Riverpod для управления состоянием и почему глобальное объявление провайдеров может приводить к проблемам с пониманием и тестированием кода.

🧭 Пакет flutter_gemini, который позволяет интегрировать Google Gemini API в Flutter-приложения. Он позволяет вам бесшовно интегрировать возможности Gemini в ваше приложение.

🌟 Подборка из 40 бесплатных шаблонов для разработки приложений на Flutter. Шаблоны включают в себя различные категории.

🗄 Создание кастомной нижней панели навигации в Flutter с анимированными иконками из Rive. Загрузка бесплатных анимированные иконки из Rive, создание модели для управления анимацией, и построение кастомного виджета для нижней панели навигации и как связать его с контроллерами анимации.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱5👍1
🧑‍💻 Особенности работы в айти: результаты опроса подписчиков

В декабре мы провели среди вас опрос, изучили результаты и сделали аналитическую статью на vc.ru.

Вот некоторые выводы:

🧔‍♂️ В основном наша аудитория состоит из мужчин — 92,1% опрошенных. Женщин, соответственно, всего 7,9%.
🐍 В ТОП-10 специальностей входят питонисты — их 12,4%. Дата-инженерами или дата-сайентистами себя назвали 3.7% респондентов.
👨‍🎓 25% аудитории — самоучки, у которых нет профильного образования, и они не заканчивали никаких платных курсов.
💲 У разработчиков с опытом менее года преобладают зарплаты до 90 000 рублей (88%). Если опыта 1-3 года, то доля получающих 150 000+ увеличивается до 53,6%.
💰 Опытные и образованные Python-разработчики (15,44%) также входят в шестёрку самых высокооплачиваемых специалистов.

🔗 Полный отчёт можно прочесть по этой ссылке

💬 Пишите, какие ещё подобные материалы вам было бы интересно почитать
🎉1
🧩 Как разместить резюме на GitHub Pages?

GitHub Pages — удобная платформа для размещения статических веб-страниц. На ней можно размещать любой контент, не нарушающий правила сервиса.

🧙‍♂️ Из преимуществ:

Размер сайта — до 1 Гб.
Объем трафика — 100 Гб в месяц.
Количество сборок в час — до 10.

Но, вместе с плюсами, есть и минусы. О них и обо всём другом в статье 👇

🔗 Читать статью
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
🎨 Меняем иконку приложения программно <//>

➡️ Конфигурация:

Подготовьте новый набор значков приложений, импортируйте его в Xcode.

Теперь нам нужно включить оба набора App Icon в бинарный файл приложения. Для этого перейдите в настройки сборки и измените свойство Include All App Icon Assets на Yes.

Менять иконку будем через UIApplication.shared.setAlternativeIconName(_:). Если мы передадим nil в качестве параметра, приложение восстановит исходный значок приложения.

➡️ Настройки:

Создаём новый enum, который будет содержать всю информацию о значке, которая нам понадобится.





enum AppIcon: CaseIterable {
case `default`
case updateOne

var name: String? {
switch self {
case .default:
return nil
case .updateOne:
return «AppIcon-Update-1»
}
}

var description: String {
switch self {
case .default:
return «Default»
case .updateOne:
return «Update 1»
}
}

var icon: Image {
switch self {
case .default:
return Image(«AppIcon-Icon»)
case .updateOne:
return Image(«AppIcon-Update-1-Icon»)
}
}
}

extension AppIcon {
init(from name: String) {
switch name {
case «AppIcon-Update-1»: self = .updateOne
default: self = .default
}
}



Теперь создаем простой вид настроек, в котором будем выбирать варианты значка:






struct SettingsView: View {
/// State properties
@State private var selectedIcon: AppIcon = .default

var body: some View {
Form {
Section(
header: Text(«App Icon»).font(.headline),
footer: Text(«You can customize the app icon to fit in with your home theme»)
) {
ForEach(AppIcon.allCases, id: \.self) { icon in
Toggle(isOn: Binding(
get: { selectedIcon == icon },
set: { newValue in
if newValue {
selectedIcon = icon
updateIcon()
}
}
), label: {
HStack {
icon.preview
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 50, height: 50)
.clipShape(RoundedRectangle(cornerRadius: 10))
Text(icon.description)
.font(.title3)
}
})
.tint(Color.accentColor)
}
}
}
.onAppear {
getCurrentIcon()
}
}
}

// MARK: — Helpers
private extension SettingsView {
func getCurrentIcon() {
if let iconName = UIApplication.shared.alternateIconName {
selectedIcon = AppIcon(from: iconName)
} else {
selectedIcon = .default
}
}

func updateIcon() {
Task {
await CommonUtils.updateAppIcon(with: selectedIcon.name)
}
}
}

// -------

class CommonUtils {
static func updateAppIcon(with iconName: String?) async {
Task {
do {
guard UIApplication.shared.alternateIconName != iconName else {
return
}
try await UIApplication.shared.setAlternateIconName(iconName)
} catch {
print(«Could not update icon \(error.localizedDescription)»)
}
}
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
😎 Китай в лидерах, ИИ-приложения показали бурный рост <//>

Data.ai представляет последние тенденции рынка мобильных приложений, отраслевые идеи, передовой опыт и лучшие данные, охватывающие 11 отраслей и 30 рынков.

⭐️ Из интересного:

— Южная Корея, Бразилия, Мексика и Турция выросли в деньгах больше чем на 25%.
— 6 приложений заработало более 1 миллиарда долларов, 69 больше 100 и 587 больше 10 миллионов.
— ИИ-приложения показали головокружительный рост. И речь идет не только о чат-ботах.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
📱 Новое — забытое старое <//>

Вспоминаем, что важного показали для iOS разработки на WWDC 2023. В статье собраны вебинары их краткое описание.

Из важного:

— Pushes Notifications. Что менялось в последние годы? 🔄
— Live Activities ▶️
— SwiftData 🗃
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Какой у вас идеальный домашний сетап? Хватает вам одного монитора, или исключительно макбук? Или это какая-то незаменимая часть интерьера. Делитесь в комментариях 👇