🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Авторизация пользователей за копейки: как бизнесу отказаться от дорогих 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
Почитать:
— Авторизация пользователей за копейки: как бизнесу отказаться от дорогих 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
👍5❤2🔥2
Когда вы работаете с растровыми изображениями можно сэкономить объем потреьляемой памяти путем конвертации 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🔥5❤3
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Сделали по красоте: победители «Конкурса красоты кода»
— Особенности 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
Почитать:
— Сделали по красоте: победители «Конкурса красоты кода»
— Особенности 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
👍5❤1🔥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
Список полезных ресурсов, которые ускорят разработку приложений! Эти шаблоны упрощают процесс разработки, позволяя вам быстро приступить к работе над приложениями👇
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
👍3❤1🔥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
Почитать:
— Собери сам: Набор для разработки на 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
👍3❤1🔥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
Почитать:
— Зачем собирать номера телефонов клиентов и как сделать это экологично
— Модификаторы классов для сопровождающих 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
👍4❤1🔥1
📲 Красивый и многофункциональный проигрыватель музыки и видео с поддержкой Youtube, построенный на Flutter
• Github
@mobdevelop
• Github
@mobdevelop
👍8🔥1
30DaysofSwift
Самостоятельный проект по изучению языка Swift.
Этот проект был полностью вдохновлен проектом Сэма Лу "100 дней Swift", после прочтения его сообщения на Medium я принял решение посвятить каждый свой день написанию Swift, это финальный код 30 маленьких Swift-проектов.
https://github.com/allenwong/30DaysofSwift
@mobdevelop
Самостоятельный проект по изучению языка Swift.
Этот проект был полностью вдохновлен проектом Сэма Лу "100 дней Swift", после прочтения его сообщения на Medium я принял решение посвятить каждый свой день написанию Swift, это финальный код 30 маленьких Swift-проектов.
https://github.com/allenwong/30DaysofSwift
@mobdevelop
👍9❤3🔥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)
Хорошего дня!
Почитать:
— Что мобильным разработчикам расскажут на 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)
Хорошего дня!
👍4❤1🔥1
Swift на сервере в 2023
Вас интересует развитие Swift на серверной стороне? Тогда обязательно прочтите этот ежегодный отчёт рабочей группы Swift Server!
На 2023 год запланирован дальнейший рост экосистемы, расширение документации и совершенствование инструментов разработки.
#ios #swift
Вас интересует развитие Swift на серверной стороне? Тогда обязательно прочтите этот ежегодный отчёт рабочей группы Swift Server!
На 2023 год запланирован дальнейший рост экосистемы, расширение документации и совершенствование инструментов разработки.
#ios #swift
❤4👍1🤯1
LocalSend: Кроссплатформенная альтернатива AirDrop с открытым исходным кодом
Это бесплатное приложение с открытым исходным кодом, позволяющее безопасно обмениваться файлами и сообщениями с соседними устройствами по локальной сети без необходимости подключения к Интернету.
🐱 GitHub
Это бесплатное приложение с открытым исходным кодом, позволяющее безопасно обмениваться файлами и сообщениями с соседними устройствами по локальной сети без необходимости подключения к Интернету.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2❤1
Что отличает архитектурные паттерны MVC, MVP, MVVM, MVVM-C и VIPER друг от друга?
Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android. Разработчики внедрили их, чтобы преодолеть ограничения предыдущих паттернов. Чем же они отличаются друг от друга?
- MVC, самый старый паттерн, появился почти 50 лет назад.
- В каждом паттерне есть "представление" (V), отвечающее за отображение содержимого и прием пользовательского ввода
- Большинство паттернов включают "модель" (M) для управления бизнес-данными.
- "Контроллер", "презентатор" и "представление-модель" - это трансляторы, которые являются посредниками между представлением и моделью ("сущность" в паттерне VIPER).
- Эти трансляторы могут быть достаточно сложными в написании, поэтому были предложены различные паттерны, позволяющие сделать их более удобными в эксплуатации
От себя: имейте в виду, что это не исчерпывающий список архитектурных паттернов. Среди других известных паттернов можно отметить Flux и Redux.
@mobdevelop
Эти архитектурные паттерны являются одними из наиболее часто используемых при разработке приложений, как на платформах iOS, так и Android. Разработчики внедрили их, чтобы преодолеть ограничения предыдущих паттернов. Чем же они отличаются друг от друга?
- MVC, самый старый паттерн, появился почти 50 лет назад.
- В каждом паттерне есть "представление" (V), отвечающее за отображение содержимого и прием пользовательского ввода
- Большинство паттернов включают "модель" (M) для управления бизнес-данными.
- "Контроллер", "презентатор" и "представление-модель" - это трансляторы, которые являются посредниками между представлением и моделью ("сущность" в паттерне VIPER).
- Эти трансляторы могут быть достаточно сложными в написании, поэтому были предложены различные паттерны, позволяющие сделать их более удобными в эксплуатации
От себя: имейте в виду, что это не исчерпывающий список архитектурных паттернов. Среди других известных паттернов можно отметить Flux и Redux.
@mobdevelop
👍8❤1
Шаблон делегирования
Самый важный и частый вопрос на собеседованиях.
Делегирование — это шаблон проектирования, согласно которому при возникновении конкретного события от одного объекта другому отправляются сообщения. На 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
This media is not supported in your browser
VIEW IN TELEGRAM
Добавление прокрутки в симуляторе Xcode!
Приложение для работы со строкой меню, которое добавляет прокрутку.
https://github.com/aheze/Squirrel
#ios
@mobdevelop
Приложение для работы со строкой меню, которое добавляет прокрутку.
https://github.com/aheze/Squirrel
#ios
@mobdevelop
👍6❤1🔥1
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Как защитить свою форму верификации от ботов
— От Style Transfer до диффузии: эволюция визуальных эффектов на смартфонах
— Электронные книги? Аудиокниги? Смешать, но не взбалтывать
— Адаптивный дизайн приложений на Gtk
— SwiftUI: от сомнений к успешному внедрению
— Как интегрировать мультиаккаунт в уже работающий сервис и не поломать всё
— Построение графа покрытия UI-тестами бизнес-логики на основе VisualFSM
— Что будет с мобильными релизами, если улучшать и автоматизировать процессы
— Как зловредные приложения могут скрывать работу с буфером обмена в Android 14
— Мобильная разработка за неделю #511 (16 — 22 октября)
— Advantages and Disadvantages of Mobile Application Development
— Innovating the Music Streaming Landscape: How to Make an App Like Spotify
— 5 Benefits of Using Mobile Applications in Education
— Unlock a new look for your social media profile - Avatarly
— Is Qualcomm's New Chip The Ultimate AI Game-Changer?
— Hybrid App Development: A Product Manager's Perspective
— Implementing Video Streaming Protocols in OTT Apps
— UX/UI Design Best Practices for Mobile Apps
— The Future of Mobile Application Development with 5G
— Version 2.0 of my Android app is Live!!
Посмотреть:
🌐 Q&A стрим. Октябрь 2023 (⏱ 00:00)
🌐 Собираем макет на UIKit кодом. Верстка интерфейса кодом. UIKit/Xcode 2023 (⏱ 01:13:30)
🌐 Пишем программу для iPhone за 20 минут. Swift/UIKit/CoreData 2023 (⏱ 26:41)
Хорошего дня!
@mobdevelop
Почитать:
— Как защитить свою форму верификации от ботов
— От Style Transfer до диффузии: эволюция визуальных эффектов на смартфонах
— Электронные книги? Аудиокниги? Смешать, но не взбалтывать
— Адаптивный дизайн приложений на Gtk
— SwiftUI: от сомнений к успешному внедрению
— Как интегрировать мультиаккаунт в уже работающий сервис и не поломать всё
— Построение графа покрытия UI-тестами бизнес-логики на основе VisualFSM
— Что будет с мобильными релизами, если улучшать и автоматизировать процессы
— Как зловредные приложения могут скрывать работу с буфером обмена в Android 14
— Мобильная разработка за неделю #511 (16 — 22 октября)
— Advantages and Disadvantages of Mobile Application Development
— Innovating the Music Streaming Landscape: How to Make an App Like Spotify
— 5 Benefits of Using Mobile Applications in Education
— Unlock a new look for your social media profile - Avatarly
— Is Qualcomm's New Chip The Ultimate AI Game-Changer?
— Hybrid App Development: A Product Manager's Perspective
— Implementing Video Streaming Protocols in OTT Apps
— UX/UI Design Best Practices for Mobile Apps
— The Future of Mobile Application Development with 5G
— Version 2.0 of my Android app is Live!!
Посмотреть:
🌐 Q&A стрим. Октябрь 2023 (⏱ 00:00)
🌐 Собираем макет на UIKit кодом. Верстка интерфейса кодом. UIKit/Xcode 2023 (⏱ 01:13:30)
🌐 Пишем программу для iPhone за 20 минут. Swift/UIKit/CoreData 2023 (⏱ 26:41)
Хорошего дня!
@mobdevelop
👍4❤1🔥1
Вопросы для собеседования iOS — Swift. Часть 2
Конкретный тип против абстрактного
В Swift имеются различные типы категорий, включая два фундаментальных понятия: конкретные и абстрактные типы.
Что такое «конкретный тип»?
Конкретный тип непосредственно инстанцируется для создания объектов:
1. Определяются все свойства и методы.
2. Примеры конкретных типов — классы и структуры.
Простой конкретный тип
Конкретный тип с использованием класса
Что такое «абстрактный тип»?
Это тип, которым определяется набор требований без фактической реализации:
1. Требования относятся к свойствам и методам.
2. Абстрактный тип не инстанцируется напрямую.
Как получают абстрактный тип?
Продолжение
Часть 1.
Конкретный тип против абстрактного
В Swift имеются различные типы категорий, включая два фундаментальных понятия: конкретные и абстрактные типы.
Что такое «конкретный тип»?
Конкретный тип непосредственно инстанцируется для создания объектов:
1. Определяются все свойства и методы.
2. Примеры конкретных типов — классы и структуры.
Простой конкретный тип
struct Person {
var name: String
var age: Int
}
let person = Person(name: "John", age: 20)
print("Person name \(person.name) Age \(person.age)")
Конкретный тип с использованием класса
class Employee {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
func empActiveStatus() {
print("Active")
}
}
let employee = Employee(name: "Jones", age: 35)
print("Employe name \(employee.name) Age \(employee.age)")
print("Active Status \(employee.empActiveStatus())")
Что такое «абстрактный тип»?
Это тип, которым определяется набор требований без фактической реализации:
1. Требования относятся к свойствам и методам.
2. Абстрактный тип не инстанцируется напрямую.
protocol Shape {
func area() -> Double
}
struct Circle: Shape {
var radius: Double
func area() -> Double {
return Double.pi * radius * radius
}
}
struct Square: Shape {
var side: Double
func area() -> Double {
return side * side
}
}
let circle = Circle(radius: 5.0)
print("Area of circle: ", circle.area())
let square = Square(side: 5.0)
print("Area of square: ", square.area())
Как получают абстрактный тип?
Продолжение
Часть 1.
👍3🔥3❤1🤡1
Язык Swift для начинающих
1. Знакомство с playground
2. Константы и переменные
3. Типы данных
4. Базовые операторы
5. Действия со строками
6. Оператор ветвления if
7. Инструкция switch
8. Массивы
9. Множества
10. Словари
#video #swift
https://www.youtube.com/watch?v=nSoXuPsnXl0&list=PLtovLaW_R9-N-KECYTUWqQaVtBXhufJfw
1. Знакомство с playground
2. Константы и переменные
3. Типы данных
4. Базовые операторы
5. Действия со строками
6. Оператор ветвления if
7. Инструкция switch
8. Массивы
9. Множества
10. Словари
#video #swift
https://www.youtube.com/watch?v=nSoXuPsnXl0&list=PLtovLaW_R9-N-KECYTUWqQaVtBXhufJfw
👍6🔥1🤡1
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Flutter VS React Native
— Стоит ли разработчику идти на завод, как запустить стартап, но вовремя остановиться и другие истории реальных айтишников
— «Клиентов нужно не искать, а создавать»: погружение в Telegram API через TDLib
— Kotlin Multiplatform перешёл в stable. Что это значит?
— Можно ли обойтись без нативных языков, разрабатывая на Flutter и RN?
— Как сделать тесты на Espresso более читабельными и стабильными
— Как создать интерактивные виджеты на iOS 17
— Байт-код — это просто! Как сделать DI по-настоящему быстрым
— Flutter. Локальная база данных
— Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
— How to Test Native Features in Flutter Apps with Patrol and Codemagic
— Custom queries AndroidManifest Pada Expo
— Tech Stacks used for Android Development
— 💰Boost your game/app earnings 📱
— Unveiling the Proven Strategies for Robust React Native Development
— Mobile development
— Aumente as Conversões na Black Friday: Estratégia ASO & Ícone Dinâmico no React Native
— Moinuddin9777 | Contributor
— How to Publish Your Android Mobile App on Google Play Store
— Secrets to Build a Million-Dollar App: Start Your Mobile App Journey NOW!
Посмотреть:
🌐 Собеседование с Михаилом Левченко (⏱ 01:46:27)
🌐 Верста На UIKit. Страница Авторизации. Стрим #0 (⏱ 01:56:50)
🌐 Мои приложения за 2 года разработки. Обзор и делюсь полезными советами (⏱ 23:41)
Хорошего дня!
Почитать:
— Flutter VS React Native
— Стоит ли разработчику идти на завод, как запустить стартап, но вовремя остановиться и другие истории реальных айтишников
— «Клиентов нужно не искать, а создавать»: погружение в Telegram API через TDLib
— Kotlin Multiplatform перешёл в stable. Что это значит?
— Можно ли обойтись без нативных языков, разрабатывая на Flutter и RN?
— Как сделать тесты на Espresso более читабельными и стабильными
— Как создать интерактивные виджеты на iOS 17
— Байт-код — это просто! Как сделать DI по-настоящему быстрым
— Flutter. Локальная база данных
— Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти
— How to Test Native Features in Flutter Apps with Patrol and Codemagic
— Custom queries AndroidManifest Pada Expo
— Tech Stacks used for Android Development
— 💰Boost your game/app earnings 📱
— Unveiling the Proven Strategies for Robust React Native Development
— Mobile development
— Aumente as Conversões na Black Friday: Estratégia ASO & Ícone Dinâmico no React Native
— Moinuddin9777 | Contributor
— How to Publish Your Android Mobile App on Google Play Store
— Secrets to Build a Million-Dollar App: Start Your Mobile App Journey NOW!
Посмотреть:
🌐 Собеседование с Михаилом Левченко (⏱ 01:46:27)
🌐 Верста На UIKit. Страница Авторизации. Стрим #0 (⏱ 01:56:50)
🌐 Мои приложения за 2 года разработки. Обзор и делюсь полезными советами (⏱ 23:41)
Хорошего дня!
👏4
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Flutter 3.16: что нового
— Как сделать автотесты гибкими и лаконичными
— Анимация загрузки картинок во Flutter, или как сделать shimmer своими руками
— Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости
— Разделение презентационного слоя фичи на модули в Android приложении
— Листаем цифровые страницы: UIPageViewController
— Мобильные суперприложения выгодны корпорациям, но это кошмар для простых людей
— Простой, но масштабируемый State Management для Flutter
— Как подружить JUnit 5 и Robolectric?
— Исследование со взломом. Часть 1
— Can Humane’s AI Pin Revolutionize The World Of Wearables?
— Pranshu Singh
— How Grocery Stores Are Benefiting from Mobile Apps🎉
— How to Add Content Descriptions in Compose - A Guide for Android Devs
— Elevating Your Mobile App Dreams: Expert React Native Development for iOS and Android
— Core Data with Table Views Part II
— Exploring the Power of Shared Preferences in Flutter Development.
— Popular Apps Created Using React Native
— Core Data with Table Views Part I
— Hire The Best UI/UX Services Company
Посмотреть:
🌐 Как устроен Android в умных колонках Яндекса (⏱ 01:44:50)
Хорошего дня!
Почитать:
— Flutter 3.16: что нового
— Как сделать автотесты гибкими и лаконичными
— Анимация загрузки картинок во Flutter, или как сделать shimmer своими руками
— Разрушители легенд: Как на самом деле магазины проверяют приложения на уязвимости
— Разделение презентационного слоя фичи на модули в Android приложении
— Листаем цифровые страницы: UIPageViewController
— Мобильные суперприложения выгодны корпорациям, но это кошмар для простых людей
— Простой, но масштабируемый State Management для Flutter
— Как подружить JUnit 5 и Robolectric?
— Исследование со взломом. Часть 1
— Can Humane’s AI Pin Revolutionize The World Of Wearables?
— Pranshu Singh
— How Grocery Stores Are Benefiting from Mobile Apps🎉
— How to Add Content Descriptions in Compose - A Guide for Android Devs
— Elevating Your Mobile App Dreams: Expert React Native Development for iOS and Android
— Core Data with Table Views Part II
— Exploring the Power of Shared Preferences in Flutter Development.
— Popular Apps Created Using React Native
— Core Data with Table Views Part I
— Hire The Best UI/UX Services Company
Посмотреть:
🌐 Как устроен Android в умных колонках Яндекса (⏱ 01:44:50)
Хорошего дня!
👍3❤1🔥1🎉1
Forwarded from Android разработка
Рассмотрим 10 экспертных рекомендаций по использованию Flutter, которые помогут разработчикам усовершенствовать свои навыки и создавать еще более качественные мобильные приложения в 2023 году.
1. Горячая перезагрузка
Максимально используйте во Flutter функцию Hot Reload (горячая перезагрузка). Эта функция позволяет ускорить цикл разработки и сэкономить значительное количество времени при работе над новыми проектами.
2. Стабильный канал Flutter
Чтобы воспользоваться преимуществами последних стабильных функций и исправлений, убедитесь в том, что подключены к стабильному каналу Flutter.
3. Организация исходного кода
Организация кода во Flutter играет ключевую роль в обеспечении производительности, эффективности и сопровождаемости.
4. Генераторы кода
Генераторы кода Flutter позволяют упростить написание и сопровождение кода.
5. Dart DevTools
Dart DevTools — это надежный набор инструментов для отладки и оптимизации производительности на Flutter.
6. Виджеты Flutter с поддержкой жестов
Flutter включает широкий набор виджетов, позволяющих создавать привлекательные и отзывчивые пользовательские интерфейсы.
7. Отзывчивый дизайн
Отзывчивый дизайн во Flutter необходим для создания пользовательских интерфейсов (UI), адаптивных к различным размерам и ориентациям экрана. Для этого Flutter предоставляет такие инструменты, как LayoutBuilder и MediaQuery.
8. Анимированные виджеты
Анимированные виджеты Flutter позволяют разработчикам включать в мобильные приложения анимацию, повышая общий уровень взаимодействия пользователя с приложением.
9. Макеты Flutter
С помощью макетов Flutter можно создавать несколько видов макетов приложений — от простых до сложных.
10. Android Studio
Android Studio для работы с Flutter предлагает множество эффективных расширений, позволяющих сэкономить время разработчиков и повысить производительность. Это интегрированная среда разработки (IDE), которая предоставляет программистам доступ к широкому набору инструментов, повышающих уровень комфорта при создании сложных приложений.
📌 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
Школа мобильной разработки: Android
1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI
#video #android
https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97
1. My first app: вводная про платформу
2. Kotlin
3. Базовые компоненты
4. Views & Layout
5. RecyclerView
6. Background Часть 1
7. Background Часть 2
8. Network
9. Storage
10. DI
#video #android
https://www.youtube.com/watch?v=Xfaqnj1egFI&list=PLQC2_0cDcSKAVl_3u-3ZrEW2UFBUjDD97
🔥6👍2