Мобильная разработка
4.15K subscribers
177 photos
23 videos
1 file
240 links
@haarrp - admin

@itchannels_telegram - 🔥лучшие ит-каналы

@javascriptv - продвинутый javascript

@JavaScript_testit- js тесты

@programming_books_it - бесплатные it книги

@ai_machinelearning_big_data - ml
加入频道
📱Locus

Locus — это бесплатное приложение с открытым исходным кодом для Android и iOS, которое позволяет вам делиться своим местоположением в режиме реального времени конфиденциально.

Он шифрует ваше местоположение end-to-end и хранит данные децентрализованно на нескольких серверах, с помощью Nostr.


Github

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥3
🎥 Фреймворк The Composable Architecture

The Composable Architecture — это идеальный фреймворк для создания сложных приложений в SwiftUI.

Пошагового изучив его, вы решите многие проблемы повседневной разработки:

✔️ Управление состояниями приложения с простыми типами значений вызовом этих состояний в разных интерфейсах: изменения внутри одного интерфейса немедленно отражаются на другом.
✔️ Компоновка: разбиение сложных функций на небольшие, выполняемые независимо компоненты с последующим их объединением в исходную функциональность.
✔️ Побочные эффекты для взаимодействия частей приложения с внешним миром самым тестируемым и понятным способом.
✔️ Тестирование функционала, а также его интеграционное тестирование с другими функциями для создания функций посложнее, сквозное тестирование для понимания влияния побочных эффектов на приложение. Так обеспечивается соответствие бизнес-логики ожиданиям.
✔️ Эргономика: чтобы достичь всего этого, используется минимум концепций и подвижных частей, а также простой API.

Функционал и преимущества TCA
⬇️

Читать

@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥32
🔥 Дайджест полезных материалов из мира : Мобильная разарботка за неделю

Почитать:
Приглашаем на Ozon Tech Community Mobile Meetup
Под капотом анимаций в React Native. Часть 2/2: Reanimated and JSI
WWDC 2023. Новый фреймворк SwiftData для управления данными. Эксперименты
Добавьте 𝚍𝚒𝚛=𝚊𝚞𝚝𝚘 к полю ввода
Как выбрать компанию — мобильного разработчика
Swift и Objective-C в одном SDK. Стерпится, слюбится
Flutter 3.13. Что нового?
Ускоряем сборку за счёт миграции с kapt на ksp
Как не забросить свой пет-проект. Мой кейс запуска приложения в App Store
Одно PWA, чтоб править всеми
Using the event bus pattern in Android with Kotlin
Quick Guide to Custom Painting in Flutter
A (Mobile) Bug's Life - How to Debug Web Apps on Mobile Devices
A Guide to Migrating a Native App to Hybrid: Seamless Transition for Enhanced Efficiency
Ultimate Guide to Write Tests in Flutter
Flutter learning: Am I missing any topic?
Mastering Navigation in Flutter: A Comprehensive Guide
Leading the Way: The Top 10 Mobile App Development Companies Deliver Innovation
Opportunity - Frontend & Mobile Developer - salary between 40k and 45k
Mobile App Development Company Uplogic

Посмотреть:
🌐 Важный фикс Gradle | Flutter для Aurora OS | Права AI генераторов ( 17:55)
🌐 Почему стоит вкладываться в опенсорс ( 35:29)

Хорошего дня!

@mobdevelop
👍41🔥1
🔥 Дайджест полезных материалов из мира : Мобильная разарботка за неделю

Почитать:
Как мы разрабатывали приложение с сибирским характером для суровых дальнобойщиков (и победили Яндекс Карты)
История разработки приложения для складных смартфонов Samsung. Часть 1
Вложенная навигация во Flutter: что такое декларативный роутер и зачем он нужен
Не дадим Windows Phone умереть! Как я написал свои клиенты VK, YouTube для Nokia Lumia? Сам себе экосистема ч.2
В поисках идеальной Headless CMS для масштабных проектов: как выбрать лучшее решение в 2023 году?
Месячная заруба с Apple. Рефакторим бридж. Часть 2
Мобильная разработка за неделю #503 (21 — 27 августа)
Flutter and Kintone
Chart of the Week: Creating a .NET MAUI Horizontal Bar Chart to Compare Grocery Prices Between Two Countries
Tutorial: Sending Mobile Push Notifications Using Courier and Their New Android SDK
How to Create a Bluetooth LE Scanner for Android
Responsive Design
Your Users Will Do the Darnedest thing: Hedging Against That as a Mobile Developer.
Passkey iOS SDK - Authsignal
Top 10 Flutter Libraries and Frameworks to Speed Up Your Development
Why I Haven't Started Learning Kotlin Multiplatform Mobile Yet
Sneak Peek at 2023 Volume 3: Flutter

Посмотреть:
🌐 Dagger KSP | Замена Firebase | Ускорение тестов ( 19:43)
🌐 Кодогенерация. KAPT. KSP. Manual DI ( 57:57)
🌐 Cобеседование Android разработчика. Максим Качинкин, Dodo Engineering ( 00:00)

Хорошего дня!

@mobdevelop
👍41🔥1
📱Обнаружение утечек памяти

В статье описано, как с помощью XCTest проверить, что объекты удаляются из памяти после завершения теста.

Решение позволяет добавить такую проверку в любой тест, чтобы автоматически получать уведомления об утечках.

https://qualitycoding.org/swift-memory-leak-detection-xctest/

@mobdevelop
👍31🔥1
Хотите быть в курсе актуальных трендов IT и прокачать знания в мобильной разработке?

На IT-конференции CrossConf будет самое большое сообщество по мобильной разработке и доклады от спикеров из ведущих компаний рынка 🔥

15 сентября | Красный Октябрь, Москва

По промокоду MOBDEVELOP действует скидка -20%

В программе:

🔹 2 потока по мобильной и кроссплатформенной разработке – Flutter, Kotlin, React, NativeScript, DivKit
🔹 Эксклюзивные доклады от спикеров ОС Аврора о ближайших планах
🔹 Открытая запись подкаста «Гости из IT» по теме Kotlin
🔹 IT-квиз на afterparty от знатока «Что? Где? Когда?» Бориса Белозерова

Подробная программа на сайте crossconf.com

Не упустите возможность расширить кругозор и обсудить опыт с коллегами в мире мобильной разработки! Билеты по ссылке

Новости и розыгрыши в телеграме @crossconf
4🔥2💯2
🔥 Дайджест полезных материалов из мира: Мобильной разработки за неделю

Почитать:
Искать пару, а найти работу. История разработчика Fitil
Enum в Swift: Перечисления Возможных Сценариев
Не усложняйте свои приложения
9 лучших консольных файловых менеджеров Linux
Разбор Android 14 для разработчиков
Нововведения фреймворка Flutter 3.13. Часть 1
Новый способ прослушивания событий жизненного цикла приложения во Flutter
Ускоряем поиск по коду в Android Studio
Как CallPassword ID меняет парадигму авторизации и экономит сотни тысяч
Как WhatsApp справлялся с 50 миллиардами сообщений в день, имея всего 32 инженера
Мобильная разработка за неделю #504 (28 августа — 3 сентября)
From Idea to App Store: A Step-by-Step Guide to Mobile App Development
Trends Of Mobile App Development In The Future
Mobile Dev Roadmap
Coding on the Commute: Making the Most of Your Journey
Creating Interactive UIs with Motion Layout using Jetpack Compose
Testing Banking Apps: Ensuring Security, Functionality, and User Experience
Expanding Your Mobile App's Compatibility: Using TechSpecs API to Test on Various Devices
Managing the Keyboard in SwiftUI: A Comprehensive Tutorial
Sneak Peek at 2023 Volume 3: Xamarin
Phone number centric apps are a Security Hazard

Посмотреть:
🌐 Что нового в Android 14 для разработчиков ( 36:32)
🌐 Cобеседование Android-разработчика. Максим Качинкин, Dodo Engineering ( 01:44:13)
🌐 Как учиться правильно? Методы обучения ios и не только ( 13:41)

Хорошего дня!

@mobdevelop
👍41🔥1
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю

Почитать:
Авторизация пользователей за копейки: как бизнесу отказаться от дорогих SMS
Flutter на ОС Аврора
Когда бизнесу нужна разработка мобильного приложения? Раскладываем по полочкам. Помогаем определиться с подходами
Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения
In-app purchases — за что и почему? Взгляд аналитика
PWA vs Native: чек-лист, который поможет выбрать
SDK AppMetrica — теперь в опенсорсе
Как работает SberPay под капотом
Шейдеры в iOS для начинающих
Нововведения фреймворка Flutter 3.13.Часть 2
Flutter: Initial Setup
Building security for digital wallets and financial applications
Building a PinePhone App With React and Tauri
CSS flex and grid using Cssbattles challange.
Leveraging Phone Numbers for Rock-Solid Identity Verification: A Technical Deep Dive
React Native Error: A navigator cannot contain multiple 'Screen' components with the same name ...
Easy way to embed responsive YouTube iframe
iOS Tips Xamarin Forms - Get Safe Area Height
iOS Tips - This app cannot be installed because its integrity could not be verified
The Ultimate Patient Appointment Manager App in .NET MAUI

Посмотреть:
🌐 Собеседование на Mobile Developer. Алексей Панов, Контур ( 00:00)
🌐 Как я разработал IOS приложение. От идеи до загрузки ( 18:51)

Хорошего дня!

@mobdevelop
👍52🔥2
🍏Оптимизация памяти при работе с JPEG

Когда вы работаете с растровыми изображениями можно сэкономить объем потреьляемой памяти путем конвертации RGB в YUV и последующих оптимизаций. Проблема в том, что UIImage не дает из коробки всех нужных API. Разработчик Телеграма рассказывает в статье о том, как обойти ограничения и сэкономить 50% потребляемой памяти.

https://dev.to/petertech/reducing-jpeg-uiimage-ram-usage-by-50-2jed

@mobdevelop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥53
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю

Почитать:
Сделали по красоте: победители «Конкурса красоты кода»
Особенности SRE и Observability в мобильных приложениях
Дайджест мобильной разработки за август
Перф-тесты VS аномалии. Вечная битва за производительность приложений на iOS
«Подарил удочки и попрощался с друзьями на год»: как я стал Android-разработчиком, отказавшись даже от прогулок
Мобильная разработка за неделю #506 (11 — 17 сентября)
Top Benefits of Developing Mobile Apps for Small Businesses
Chart of the Week: Creating a Pareto Chart Using .NET MAUI Charts to Identify Key Customer Complaints
Why Should Startups Develop a React Native App?
Stop Using Result Wrappers In Your Reactive Return Types
How to build your embedded NativeScript app within the Xcode project
Best Apps for Organizing International Healthcare Relocations
The Benefits of Hiring a Professional iOS App Development Company
How to support dark mode in your iOS App
A Guide to the Top 7 Document Automation & Assembly Platforms with Pros and Cons
Creating a .NET MAUI Smart PDF Viewer App with Auto-Summary Generation Using OpenAI’s ChatGPT

Посмотреть:
🌐 Поиск мотивации. Ментор же решит всё. Что мне делать ( 21:39)
🌐 Собеседование на Mobile Developer. Алексей Панов, Контур ( 01:50:36)
🌐 Модерация приложений и игр в магазине. RuStore ( 01:06:06)
🌐 FightClub. Консольная игра на Swift ( 02:18:55)

Хорошего дня!

@mobdevelop
👍51🔥1
5 лучших шаблонов проектов React Native на GitHub для быстрой разработки приложений 📱

Список полезных ресурсов, которые ускорят разработку приложений! Эти шаблоны упрощают процесс разработки, позволяя вам быстро приступить к работе над приложениями👇

1. React Native Elements: https://github.com/react-native-elements/react-native-elements
2. Ignite CLI Boilerplate: https://github.com/infinitered/ignite
3. React Native Paper: https://github.com/callstack/react-native-paper
4. UI Templates: https://github.com/Aashu-Dubey/React-Native-UI-Templates
5. React Native Boilerplate: https://github.com/thecodingmachine/react-native-boilerplate

@mobdevelop
👍31🔥1🤡1
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю

Почитать:
Собери сам: Набор для разработки на SwiftUI
15 лучших бесплатных курсов по Linux
jenv — удобный инструмент для управления версиями Java
Возможна ли жизнь после плеймаркета?
Как мы создаём Squadus. Реализуем «прыжок к сообщению» в мобильной версии
Как я делал солнечную зарядку для своего моноколеса и вот что получилось
Restyle как новый стандарт для создания UI в React Native
Дебаггинг приложения без Xcode. Зачем?
Универсальные датасорсы в iOS-разработке
Как Google победила фрагментацию и возвращает контроль над Android
Как мы распознавали цвета медицинских тест-полосок с помощью ИИ для healthcare стартапа
I'm trying to running the react-native application
Trust with DevTools Broken
How to setup Burp Suite on Android
Understanding APIs and Their Importance for Flutter Developers: Best Practices Included
Evento de Desenvolvimento Mobile Gratuito com 240 Vagas
Development Stages of a Mobile Application
Leading Android App Developers - Transform Your Ideas into Apps with Experts in Android Mobile App Development
Flutter Flow: Carousel Menu
Leading IOS App Development Company in USA | TechnBrains
Top Features To Be Added To Any Workplace Communication Application In 2023

Посмотреть:
🌐 Как Google победила фрагментацию и возвращает контроль над Android ( 29:55)
🌐 Советы к собеседованию ( 01:12:00)

Хорошего дня!

@mobdevelop
👍31🔥1
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю

Почитать:
Зачем собирать номера телефонов клиентов и как сделать это экологично
Модификаторы классов для сопровождающих API
Как коридорное исследование помогло обновить каунтеры тредов в мессенджере
Библиотека Scout — быстрый и безопасный DI на Kotlin
Сервисы: строим масштабируемые и гибкие приложения с помощью чистой архитектуры
Мобильная разработка за неделю #508 (25 сентября — 1 октября)
Parsing non-Latin based Twitch usernames in Kotlin
Role of AI in Mobile App Development
Why Mobile Apps Get Rejected
The Importance of Mobile App Design for Businesses in Dubai
Save your eyesight: how the EyeYoga app improves vision health for programmers
Zero-trust security in modern software architectures
How to Use Artificial intelligence to Enhance the Mobile User Experience
Unidades de Viewport no CSS: Além do VH (PT-BR)
How to Find and Hire Dedicated Developers for Your Tech Start-up
4 Reasons Why You Should Create an App for Your Business

Посмотреть:
🌐 Android Studio Chat Bot || Java 21 || Jetpack Paging Multiplatform - Новости 2023.19 ( 23:22)

Хорошего дня!

@mobdevelop
👍41🔥1
📲 Красивый и многофункциональный проигрыватель музыки и видео с поддержкой Youtube, построенный на Flutter

Github

@mobdevelop
👍8🔥1
30DaysofSwift

Самостоятельный проект по изучению языка Swift.

Этот проект был полностью вдохновлен проектом Сэма Лу "100 дней Swift", после прочтения его сообщения на Medium я принял решение посвятить каждый свой день написанию Swift, это финальный код 30 маленьких Swift-проектов.

https://github.com/allenwong/30DaysofSwift

@mobdevelop
👍93🔥2
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю

Почитать:
Что мобильным разработчикам расскажут на Mobius 2023 Autumn: от Compose и SwiftUI до компьютерного зрения
WidgetKit в iOS — не просто большие иконки
Как показать номер версии на экране загру…
4 сценария, когда нужно сделать ставку на Kotlin Multiplatform, а не Flutter
Как применяется и для чего нужен local first подход
8 вещей, которые я усвоил за 6 лет карьеры разработчика
Flutter: заказывать или не заказывать? Откровения разработчика
Как я осваивал Jetpack Compose
Что такое keys во Flutter?
Как тестировщику уйти из корпорации в стартап и не сойти с ума
iOS17.1 Leaked 💧🚰
Gestures in Jetpack compose — All you need to know
3 reasons NOT to use StoreKit
Flutter's Multilingual Support: Crafting World-Ready Applications
Demystifying React Native Redash and Gesture Handler
How Does Continuous Performance Testing Benefit Retail Apps?
Speeding Up Mobile Game Development with AI: 3 Ways to Use ChatGPT
Mobile Security Tools part 1: scrcpy
Role of Mobile Event Apps In In-person Events
What are the Objectives of a Mobile Application?

Посмотреть:
🌐 Пишем слайдер на UIKit + Lottie + Animations + Custom PageControll ( 01:43:45)
🌐 Как подключить платежную системы в IOS приложение? Или как принимать платежи в России? ( 40:25)

Хорошего дня!
👍41🔥1
Swift на сервере в 2023

Вас интересует развитие Swift на серверной стороне? Тогда обязательно прочтите этот ежегодный отчёт рабочей группы Swift Server!

На 2023 год запланирован дальнейший рост экосистемы, расширение документации и совершенствование инструментов разработки.

#ios #swift
4👍1🤯1
LocalSend: Кроссплатформенная альтернатива AirDrop с открытым исходным кодом

Это бесплатное приложение с открытым исходным кодом, позволяющее безопасно обмениваться файлами и сообщениями с соседними устройствами по локальной сети без необходимости подключения к Интернету.

🐱 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21
Что отличает архитектурные паттерны MVC, MVP, MVVM, MVVM-C и VIPER друг от друга?

Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android. Разработчики внедрили их, чтобы преодолеть ограничения предыдущих паттернов. Чем же они отличаются друг от друга?

- MVC, самый старый паттерн, появился почти 50 лет назад.
- В каждом паттерне есть "представление" (V), отвечающее за отображение содержимого и прием пользовательского ввода
- Большинство паттернов включают "модель" (M) для управления бизнес-данными.
- "Контроллер", "презентатор" и "представление-модель" - это трансляторы, которые являются посредниками между представлением и моделью ("сущность" в паттерне VIPER).
- Эти трансляторы могут быть достаточно сложными в написании, поэтому были предложены различные паттерны, позволяющие сделать их более удобными в эксплуатации

От себя: имейте в виду, что это не исчерпывающий список архитектурных паттернов. Среди других известных паттернов можно отметить Flux и Redux.

@mobdevelop
👍81
💻 Вопросы для собеседования iOS — Swift.

Шаблон делегирования
Самый важный и частый вопрос на собеседованиях.

Делегирование — это шаблон проектирования, согласно которому при возникновении конкретного события от одного объекта другому отправляются сообщения. На Swift он применяется с помощью Protocol.

Пример шаблона делегирования с Protocol:
// SomeProtocol.swift
protocol SomeProtocol{ //
func modifyTextToLabel(someText: String)
}


Protocol: создан SomeProtocol.swift и добавлен метод для изменения текста на метку ViewController.
// FirstViewController.swift
class FirstViewController: UIViewController{
private lazy var someLabel: UILabel = {
let label = UILabel()
label.frame = CGRect(x: 100, y: 150, width: 100, height: 50)
label.text = "Default"
return label
}()
private lazy var someButton: UIButton = {
let button = UIButton(frame: CGRect(x: 100, y: 200, width: 100, height: 50))
button.setTitle("Press ME!", for: .normal)
button.backgroundColor = .red
button.addTarget(self, action: #selector(handleButtonTapped), for: .touchUpInside)
return button
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
view.addSubview(someLabel)
view.addSubview(someButton)
}
}


ViewController: создан FirstViewController и с помощью «ленивых» переменных добавлены метка и кнопка. То есть инициализация или вычисление отложены до тех пор, пока не понадобятся.
// SecondViewController.swift
class SecondViewController: UIViewController, UITextFieldDelegate {
lazy var someTextField: UITextField = {
let textField = UITextField(frame: CGRect(x: 100, y: 100, width: 100, height: 60))
textField.placeholder = "Enter Text"
textField.keyboardType = .default
return textField
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
view.addSubview(someTextField)
someTextField.delegate = self
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
return true
}
}


ViewController: создан другой ViewController  —  SecondViewController и добавлено текстовое поле для получения пользовательского ввода. someTextField соответствует протоколу UITextFieldDelegate.
class FirstViewController: UIViewController, SomeProtocol {
func modifyTextToLabel(someText: String) {
self.someLabel.text = someText
}
}

FirstViewController соответствует SomeProtocol и унаследовал требования, или методы.
class SecondViewController: UIViewController, UITextFieldDelegate {
weak var delegate: SomeProtocol? // слабая переменная во избежание циклов сохранения

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField.hasText {
delegate?.modifyTextToLabel(someText: textField.text ?? "")
navigationController?.popToRootViewController(animated: true)
return true
}
return false
}
}


В ПЕРЕМЕННОЙ «DELEGATE» СОДЕРЖИТСЯ SOMEPROTOCOL, ОНА КАК ДЕЛЕГАТ МЕЖДУ SECONDVIEWCONTROLLER И FIRSTVIEWCONTROLLER. ПРИСВОЕНА СЛАБОЙ ССЫЛКЕ ВО ИЗБЕЖАНИЕ ЦИКЛОВ СОХРАНЕНИЯ.

Здесь modifyTextToLabel  — это метод делегата для передачи данных из SecondViewController в FirstViewController. Поэтому текст этого someLabel в FirstViewController изменится.

А ПОЧЕМУ В PROTOCOL ИСПОЛЬЗУЕТСЯ ANYOBJECT?

Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1