Классы данных — это очень удобная функция Kotlin для создания классов, основной целью которых является хранение данных, причем компилятор Kotlin автоматически создает такие функции, как equals() / hashCode(), toString(), copy(...), а также компонентные функции componentN(), которые соответствуют свойствам, в соответствии с порядком их объявления. Автоматическое преобразование в / из JSON не является (пока) частью этого процесса.
Стоит отметить, что если какая-либо из этих функций явно определена в теле класса (или унаследована от родительского класса), то генерироваться она не будет.
Чтобы класс определить как класс данных, он должен соответствовать ряду условий:
– первичный конструктор должен иметь как минимум один параметр;
– все параметры первичного конструктора должны предваряться ключевыми словами val или var, то есть определять свойства;
– свойства, которые определяются вне первичного конструктора, не используются в функциях equals() и hashCode();
– класс не должен определяться с модификаторами data, abstract, sealed или inner.
Стоит отметить, что если какая-либо из этих функций явно определена в теле класса (или унаследована от родительского класса), то генерироваться она не будет.
Чтобы класс определить как класс данных, он должен соответствовать ряду условий:
– первичный конструктор должен иметь как минимум один параметр;
– все параметры первичного конструктора должны предваряться ключевыми словами val или var, то есть определять свойства;
– свойства, которые определяются вне первичного конструктора, не используются в функциях equals() и hashCode();
– класс не должен определяться с модификаторами data, abstract, sealed или inner.
Разбираемся, к чему стоит готовиться разработчикам после выхода iOS 14: https://proglib.io/w/ba829201
AppTractor
Что разработчику ждать от iOS 14?
Новую версию iOS анонсируют совсем скоро, а выйдет она, по прогнозам, в сентябре. Хотите лучше подготовиться к ее выходу?
Saving Data on Android.epub
17.3 MB
Saving Data on Android (2020)
Автор(ы): Jennifer Bailey, Aldo Olivares, Dean Djermanović
Сохранение данных всегда было фундаментальной частью любого приложения.
Сохранение данных локально или удаленно с помощью современных технологий синхронизации позволяет вашему приложению всегда быть в курсе последних событий и оперативно представлять свежие данные.
Эта книга предназначена для разработчиков Kotlin или Android среднего уровня, которые хотят знать, как сохранить данные, используя стандартные API-интерфейсы Android, компонент архитектуры Room или то, что может предложить Google Firebase.
Автор(ы): Jennifer Bailey, Aldo Olivares, Dean Djermanović
Сохранение данных всегда было фундаментальной частью любого приложения.
Сохранение данных локально или удаленно с помощью современных технологий синхронизации позволяет вашему приложению всегда быть в курсе последних событий и оперативно представлять свежие данные.
Эта книга предназначена для разработчиков Kotlin или Android среднего уровня, которые хотят знать, как сохранить данные, используя стандартные API-интерфейсы Android, компонент архитектуры Room или то, что может предложить Google Firebase.
👍2
Разбираемся с протоколом Codable, который предоставляет лучший способ парсинга данных в Swift (по мнению автора): https://proglib.io/w/76b918fe
Medium
Codable: A better way to parse data in Swift
Apple recommends MVC architecture for development and is undeniably more common architecture. MVC segregate code in three parts —…
Пишем кроссплатформенное приложение чат для iOS и macOS с помощью Stream: https://proglib.io/w/b8f7d4c5
DEV Community
How to Build a Cross-Platform iOS and macOS Chat App using Stream
You can now ship your Stream Chat iOS app on macOS with minimal work required
Изучаем Kotlin, разрабатывая Reddit-клиент
Вас ждет 8 уроков, в ходе которых вы разберетесь с созданием полноценного клиента для Reddit под названием Keddit (ссылка на репозиторий).
https://proglib.io/w/ae69966e
Вас ждет 8 уроков, в ходе которых вы разберетесь с созданием полноценного клиента для Reddit под названием Keddit (ссылка на репозиторий).
https://proglib.io/w/ae69966e
GitHub
GitHub - juanchosaravia/KedditBySteps: Small Reddit Android client developed with Kotlin
Small Reddit Android client developed with Kotlin. Contribute to juanchosaravia/KedditBySteps development by creating an account on GitHub.
Если вы уже поняли все необходимые концепции разработки для Android и думаете, что готовы работать над приложением, которое соответствует отраслевым стандартам (масштабируемое и поддерживаемое в долгосрочной перспективе), то держите 5 open source проектов для прокачки навыков Android-разработчика: https://proglib.io/w/d3a2762c
AppTractor
Как начинающему Android-разработчику прокачать свои навыки: 5 open source проектов для изучения
Этот список Android-приложений с открытым исходным кодом может пригодиться вам, если вы уже поняли все необходимые концепции разработки и думаете, что готовы работать над приложением, которое соответствует отраслевым стандартам.
Как вы поддерживаете и развиваете свои профильные знания в онлайне?
Anonymous Poll
42%
Читаю документацию
40%
Читаю профильную литературу
62%
Читаю статьи на Хабре/Medium/Proglib
28%
Изучаю исходники кода в github/bitbucket/gitlab
32%
Смотрю онлайн-митапы/конференции
5%
Участвую в хакатонах/конкурсах
31%
Занимаюсь своими пет-проектами
18%
Работы хватает, ничего не делаю
9%
Другое
Лекции, слайды, теоретические материалы и практические задания, по которым студенты Стэнфордского университета изучают основы создания приложений для iPhone и iPad с использованием SwiftUI в рамках курса «Разработка приложений для iOS».
https://proglib.io/w/09dc74d4
https://proglib.io/w/09dc74d4
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck pinned «Как вы поддерживаете и развиваете свои профильные знания в онлайне?»
Практическая сторона работы с архитектурным компонентом Navigation Architecture Component, с помощью которого можно с легкостью реализовать сложную навигацию в Android: https://proglib.io/w/f8fe66cf
Хабр
Navigation Architecture Component. Практический взгляд
На недавнем Google IO 2018 в числе прочего было представлено решение, помогающее в реализации навигации в приложениях. Сразу бросилось в глаза то, что граф нави...
В примере используются функциональные типы как типы параметров.
Функция
При вызове функция
Задача функции
Функция
getResult имеет три параметра. Первый параметр имеет тип (Int, Int) -> Int. Соответственно, аргументом этого параметра может быть любая функция такого же типа. Второй и третий параметры называются a и b и относятся к типу Int. Они служат для передачи двух входных значений для математической функции.При вызове функция
getResult получает в качестве входных данных функцию sum/substract и два целочисленных значения, в результате чего получаем 23 и 4 соответственно.Задача функции
getResult заключается в том, чтобы печатать результат работы математической функции соответствующего типа. При этом конкретные детали этой математической функции не имеют значения — главное, чтобы она была подходящего типа. Все это позволяет безопасно управлять работой функции getResult непосредственно во время вызова.Разработчики Android Studio 4.0 сделали большой шаг вперед и теперь IDE включает в себя множество новых функций*:
✔️Motion Editor для создания, редактирования и просмотра анимаций ✔️Улучшенный отладчик Layout Inspector
✔️Layout Validation для проверки работы приложения в разных разрешениях экрана
✔️Улучшенный CPU Profiler для лучшего понимания происходящего
✔️Улучшенная платформа IntelliJ IDEA 2019.3
✔️Теперь есть шаблоны Kotlin-кода для реализации типовых задач
✔️Build Analyzer для понимания узких мест сборки проекта
✔️Улучшенная поддержка Java 8
Подробности в видео.
Источник: https://proglib.io/w/1fe14e07
✔️Motion Editor для создания, редактирования и просмотра анимаций ✔️Улучшенный отладчик Layout Inspector
✔️Layout Validation для проверки работы приложения в разных разрешениях экрана
✔️Улучшенный CPU Profiler для лучшего понимания происходящего
✔️Улучшенная платформа IntelliJ IDEA 2019.3
✔️Теперь есть шаблоны Kotlin-кода для реализации типовых задач
✔️Build Analyzer для понимания узких мест сборки проекта
✔️Улучшенная поддержка Java 8
Подробности в видео.
Источник: https://proglib.io/w/1fe14e07
YouTube
What's new in Android Studio 4.0
The Android Studio 4.0 release introduces a new Motion Editor, Build Speed window, Live Layout inspector, Multi Preview for your layouts, support for Kotlin DSL noscript files, and a Smart editor for R8 rules.
The new Build Analyzer feature helps you understand…
The new Build Analyzer feature helps you understand…
Разработчики под iOS для шифрования конфиденциальной информации внутри приложения используют сервис KeyChain, который является частью общей структуры безопасности Apple для iOS. Но что делать с подобными данными на Android? Автор статьи советует хранить их в SharedPreferences, но после того, как они были зашифровани. О чем и рассказывает в статье.
https://proglib.io/w/51b8f663
https://proglib.io/w/51b8f663
Medium
Simple Encryption in Android App
Every Android developer sooner or later faced with situation when he needs to keep save sensitive information inside an app. You may think…
Fu_Cheng_Flutter_Recipes_Mobile_Development_Solutions_for_iOS_and.pdf
7.1 MB
Flutter Recipes: Mobile Development Solutions for iOS and Android (2019)
Автор(ы): Fu Cheng
Наряду с введением в основные концепции разработки на Flutter, материалы этой книги охватывают все важные аспекты этой новой технологии, включая разработку, тестирование, отладку, настройку производительности, публикацию приложений и непрерывную интеграцию.
Вы рассмотрите решения для различных сценариев и научитесь использовать творческие, проверенные способы для решения всех задач — от простых до сложных задач разработки.
Flutter разработан с использованием Dart и содержит уникальный технологический стек, который отличает его от конкурентов. Эта книга раскрывает тайну работы с языком Dart и интеграции Flutter в уже существующие рабочие процессы и проекты разработки.
Автор(ы): Fu Cheng
Наряду с введением в основные концепции разработки на Flutter, материалы этой книги охватывают все важные аспекты этой новой технологии, включая разработку, тестирование, отладку, настройку производительности, публикацию приложений и непрерывную интеграцию.
Вы рассмотрите решения для различных сценариев и научитесь использовать творческие, проверенные способы для решения всех задач — от простых до сложных задач разработки.
Flutter разработан с использованием Dart и содержит уникальный технологический стек, который отличает его от конкурентов. Эта книга раскрывает тайну работы с языком Dart и интеграции Flutter в уже существующие рабочие процессы и проекты разработки.
Коротко о технических деталях уязвимости в механизме «Sign in with Apple», за которую компания выплатила $100,000: https://proglib.io/w/e5edd4e3
Разбираемся с распознаванием текста из фото с помощью ML Kit в Android: https://proglib.io/w/02e9d008
android-tools.ru
Распознавание текста при помощи ML Kit | Android Tools
Распознаем текст из картинки в андроиде