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
👍7❤4🔥3
The Composable Architecture — это идеальный фреймворк для создания сложных приложений в SwiftUI.
Пошагового изучив его, вы решите многие проблемы повседневной разработки:
Функционал и преимущества TCA
Читать
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2
🔥 Дайджест полезных материалов из мира : Мобильная разарботка за неделю
Почитать:
— Приглашаем на 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
Почитать:
— Приглашаем на 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
👍4❤1🔥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
Почитать:
— Как мы разрабатывали приложение с сибирским характером для суровых дальнобойщиков (и победили Яндекс Карты)
— История разработки приложения для складных смартфонов 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
👍4❤1🔥1
📱Обнаружение утечек памяти
В статье описано, как с помощью XCTest проверить, что объекты удаляются из памяти после завершения теста.
Решение позволяет добавить такую проверку в любой тест, чтобы автоматически получать уведомления об утечках.
https://qualitycoding.org/swift-memory-leak-detection-xctest/
@mobdevelop
В статье описано, как с помощью XCTest проверить, что объекты удаляются из памяти после завершения теста.
Решение позволяет добавить такую проверку в любой тест, чтобы автоматически получать уведомления об утечках.
https://qualitycoding.org/swift-memory-leak-detection-xctest/
@mobdevelop
👍3❤1🔥1
Хотите быть в курсе актуальных трендов IT и прокачать знания в мобильной разработке?
На IT-конференции CrossConf будет самое большое сообщество по мобильной разработке и доклады от спикеров из ведущих компаний рынка 🔥
15 сентября | Красный Октябрь, Москва
По промокоду MOBDEVELOP действует скидка -20%
В программе:
🔹 2 потока по мобильной и кроссплатформенной разработке – Flutter, Kotlin, React, NativeScript, DivKit
🔹 Эксклюзивные доклады от спикеров ОС Аврора о ближайших планах
🔹 Открытая запись подкаста «Гости из IT» по теме Kotlin
🔹 IT-квиз на afterparty от знатока «Что? Где? Когда?» Бориса Белозерова
Подробная программа на сайте crossconf.com
Не упустите возможность расширить кругозор и обсудить опыт с коллегами в мире мобильной разработки! Билеты по ссылке
Новости и розыгрыши в телеграме @crossconf
На 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
Почитать:
— Искать пару, а найти работу. История разработчика 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
👍4❤1🔥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
Почитать:
— Авторизация пользователей за копейки: как бизнесу отказаться от дорогих 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