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
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Реализация параллакс-карусели из SwiftUI в Jetpack Compose
В рамках повседневной деятельности я часто изучаю последние разработки на таких платформах, как X и Medium. Однажды утром, пролистывая X, наткнулся на GitHub-репозиторий, созданный
Этот проект, размещенный на
Ее визуальная привлекательность и удобство использования просто завораживали.
Читать
В рамках повседневной деятельности я часто изучаю последние разработки на таких платформах, как X и Medium. Однажды утром, пролистывая X, наткнулся на GitHub-репозиторий, созданный
KavSoft
и сразу же привлекший мое внимание.Этот проект, размещенный на
KavSoft-Tutorials-iOS
, представлял собой потрясающую параллакс-карусель. Ее визуальная привлекательность и удобство использования просто завораживали.
Читать
👍6🔥5
🚦 Google вводит новые правила проверки приложений в Play
Google ввела новые правила для проверки приложений в Google Play, целящиеся на повышение качества приложений на платформе. Теперь все разработчики должны соответствовать расширенным требованиям перед публикацией приложений. Разработчики могут выбирать сроки проверки в Play Console, и если срок не выбран до 29 февраля 2024 года, Google назначит его автоматически. Новые личные аккаунты разработчиков должны тестировать приложения на группе пользователей перед выпуском. Время на проверку приложений увеличено, чтобы обеспечить их безопасность и соответствие политикам Google.
Подробнее можно ознакомиться здесь.
Google ввела новые правила для проверки приложений в Google Play, целящиеся на повышение качества приложений на платформе. Теперь все разработчики должны соответствовать расширенным требованиям перед публикацией приложений. Разработчики могут выбирать сроки проверки в Play Console, и если срок не выбран до 29 февраля 2024 года, Google назначит его автоматически. Новые личные аккаунты разработчиков должны тестировать приложения на группе пользователей перед выпуском. Время на проверку приложений увеличено, чтобы обеспечить их безопасность и соответствие политикам Google.
Подробнее можно ознакомиться здесь.
👍5❤2🔥2
🔥 Дайджест полезных материалов из мира Мобильной разработки за неделю
Почитать:
— Mobile Web, навигация и при чем тут Nginx
— История разработки приложения для складных смартфонов Samsung. Часть 2 — гайдлайны
— Автоматизированное тестирование событий аналитики в мобильном приложении: насколько это реально и оправдано
— Подключение сканера к Android или как почувствовать себя кассиром
— Из кондитера в программисты. Продолжение
— Just DUIT — первый взгляд на server-driven UI фреймворк для Flutter
— Оптимизация и автоматизация в бэкенд-разработке мобильных приложений: как ускорить разработку в четыре раза
— Разработка мобильных приложений для бизнеса: как создавать кроссплатформенные решения быстро и относительно дешево
— Интеграция системы «Антифрод» в работу операторов: требования к программному обеспечению и эффективность API
— Рефакторинг кода, и как его не бояться
— History of Flutter 💚
— Embedded Finance and Digital Wallets: A Comprehensive Guide for 2024
— The rules I am using to organize and document my Jetpack Compose code
— Seamlessly Integrating Native Modules in iOS for React Native AR Apps
— Exploring Modern Mobile App Development: A Comprehensive Guide
— Apps which will become famous in 2024
— How to Make an App-Like Offerup?
— Role Based Access Control in Flutter
— How I am documenting my interfaces in Kotlin
Посмотреть:
🌐 Как устроен Gradle Config Cache. Лучшие Практики. Интервью с инженером команды Gradle (⏱ 01:21:05)
🌐 #1 Как создать дизайн мобильного приложения. Создаем приложение с 0 до загрузки в AppStore. (⏱ 02:04:36)
Хорошего дня!
Почитать:
— Mobile Web, навигация и при чем тут Nginx
— История разработки приложения для складных смартфонов Samsung. Часть 2 — гайдлайны
— Автоматизированное тестирование событий аналитики в мобильном приложении: насколько это реально и оправдано
— Подключение сканера к Android или как почувствовать себя кассиром
— Из кондитера в программисты. Продолжение
— Just DUIT — первый взгляд на server-driven UI фреймворк для Flutter
— Оптимизация и автоматизация в бэкенд-разработке мобильных приложений: как ускорить разработку в четыре раза
— Разработка мобильных приложений для бизнеса: как создавать кроссплатформенные решения быстро и относительно дешево
— Интеграция системы «Антифрод» в работу операторов: требования к программному обеспечению и эффективность API
— Рефакторинг кода, и как его не бояться
— History of Flutter 💚
— Embedded Finance and Digital Wallets: A Comprehensive Guide for 2024
— The rules I am using to organize and document my Jetpack Compose code
— Seamlessly Integrating Native Modules in iOS for React Native AR Apps
— Exploring Modern Mobile App Development: A Comprehensive Guide
— Apps which will become famous in 2024
— How to Make an App-Like Offerup?
— Role Based Access Control in Flutter
— How I am documenting my interfaces in Kotlin
Посмотреть:
🌐 Как устроен Gradle Config Cache. Лучшие Практики. Интервью с инженером команды Gradle (⏱ 01:21:05)
🌐 #1 Как создать дизайн мобильного приложения. Создаем приложение с 0 до загрузки в AppStore. (⏱ 02:04:36)
Хорошего дня!
❤4👍2🔥1
📱 Metal-powered video upscaling
https://github.com/finnvoor/fx-upscale
@mobdevelop
brew install finnvoor/tools/fx-upscale
https://github.com/finnvoor/fx-upscale
@mobdevelop
🔥5❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Две идеи проектов для начинающих iOS-разработчиков
Flappy Fly Bird — проект с открытым исходным кодом по мотивам классики аркадного жанра на Swift 5.5, GameplayKit, SpriteKit и iOS 12.
Coffee-Ratio — приложение создано для любителей кофе и помогает пользователю рассчитать соотношение воды и кофе для каждой порции.
#ios #петпроект
Flappy Fly Bird — проект с открытым исходным кодом по мотивам классики аркадного жанра на Swift 5.5, GameplayKit, SpriteKit и iOS 12.
Coffee-Ratio — приложение создано для любителей кофе и помогает пользователю рассчитать соотношение воды и кофе для каждой порции.
#ios #петпроект
👍8❤2
В этом руководстве рассказывается о том, как автоматизировать обновление коммитов в кластерах Kubernetes с помощью Argo, установить отслеживание изменений, безопасность, откат и автоматическую синхронизацию.
https://arshsharma.com/posts/2023-10-14-argocd-github-actions-getting-started/
https://arshsharma.com/posts/2023-10-14-argocd-github-actions-getting-started/
Arsh Sharma
Setting Up a GitOps Workflow with Argo CD and GitHub Actions
GitOps is gaining increasing popularity these days, and for good reason. The principles of GitOps promote the use of Git repositories as the ultimate source of truth for application infrastructure and configuration. This concept revolves around storing all…
❤2