Сколько раз будет выведено «foo was set»?
Anonymous Quiz
46%
1 раз
28%
2 раза
13%
Ни разу
11%
Ошибка компиляции
2%
Ошибка выполнения
«foo was set» будет выведено 2 раза, т.к. didSet срабатывает не только при присваивании нового значения экземпляру структуры, но и при присваивании нового значения полю структуры.
Источник: https://habr.com/ru/company/simbirsoft/blog/497738/
Источник: https://habr.com/ru/company/simbirsoft/blog/497738/
Хабр
Проверь себя в Swift: паззлер для любителей головоломок
Мы, команда мобильной разработки в SimbirSoft, при создании iOS-приложений широко используем язык Swift – достаточно безопасный, быстрый и выразительный. Для тех, кто знаком со Swift, мы приготовили...
Автор статьи делится практическим опытом архитектуры и дизайна Android-приложений: https://proglib.io/w/f063a6d7
Хабр
Архитектура и дизайн Android приложения (мой опыт)
Хабр, привет! Сегодня я хочу рассказать об архитектуре, которой я следую в своих Android приложениях. За основу я беру Clean Architecture, а в качестве инструме...
Abhishek_Mishra_Machine_Learning_for_iOS_Developers_Wiley_2020.pdf
11.7 MB
Machine Learning for iOS Developers (2020)
Автор(ы): Abhishek Mishra
С помощью книги вы научитесь использовать возможности iOS для машинного обучения и изучите концепции и методы, необходимые для того, чтобы стать успешным практиком iOS в области машинного обучения!
Предполагая, что у вас нет опыта работы с машинным обучением, это книга предлагает экспертные инструкции и практические примеры интеграции машинного обучения в iOS. Четко написанные главы книги, состоящие из двух разделов, сначала охватывают фундаментальные концепции машинного обучения, различные типы систем машинного обучения, их практическое использование и потенциальные проблемы, связанные с решениями в области машинного обучения. Второй раздел учит читателей использовать модели ― как предварительно обученные, так и созданные пользователем ― с помощью инфраструктуры Apple CoreML.
Автор(ы): Abhishek Mishra
С помощью книги вы научитесь использовать возможности iOS для машинного обучения и изучите концепции и методы, необходимые для того, чтобы стать успешным практиком iOS в области машинного обучения!
Предполагая, что у вас нет опыта работы с машинным обучением, это книга предлагает экспертные инструкции и практические примеры интеграции машинного обучения в iOS. Четко написанные главы книги, состоящие из двух разделов, сначала охватывают фундаментальные концепции машинного обучения, различные типы систем машинного обучения, их практическое использование и потенциальные проблемы, связанные с решениями в области машинного обучения. Второй раздел учит читателей использовать модели ― как предварительно обученные, так и созданные пользователем ― с помощью инфраструктуры Apple CoreML.
GraphQL ― язык запросов и манипулирования данными для API. Знакомимся с его основами и учимся работать с GraphQL API для использования при разработке под Android.
https://proglib.io/w/aef7b07a
Также вам может быть интересна статья, в которой автор делится опытом редизайна приложения по прокату велосипедов и самокатов. Там кстати ребята перешли с RESTful API на GraphQL.
https://proglib.io/w/aef7b07a
Также вам может быть интересна статья, в которой автор делится опытом редизайна приложения по прокату велосипедов и самокатов. Там кстати ребята перешли с RESTful API на GraphQL.
ДОУ
Введение в GraphQL: что это за язык и как использовать его под Android
Android-разработчик Мария Агеева делится опытом работы с GraphQL. Будет интересно всем, кто еще не знаком с этим языком, собирается его использовать или только начал интеграцию GraphQL в проект. Также в статье будет кратко описана работа с GraphQL для платформы…
Компилятор не позволит этого сделать, но со стандартами generic-типами это будет работать:
Павел Финкельштейн из Lamoda делится опытом использования Kotlin в проде: https://proglib.io/w/1334dd1e
YouTube
Павел Финкельштейн — Kotlin два года в проде и ни единого разрыва
Ближайшая конференция:
Joker 2021 — 25-28 октября, онлайн.
Подробности и билеты: https://bit.ly/2WA0fJa
. . .
Joker 2021 — 25-28 октября, онлайн.
Подробности и билеты: https://bit.ly/2WA0fJa
. . .
tg_image_499195245.jpeg
3.6 MB
Android Developer Roadmap 2020
Рекомендуемый путь обучения, который поможет вам в изучении Android. Чтобы использовать этот контент, имейте в виду, что у дорожной карты есть макроблоки, которые находятся посередине, и из них выходят микроблоки, которые являются более утонченным содержанием по теме родительского блока.
Таким образом, авторы дорожной карты предлагают вам идти из макроблоков в микроблоки, сверху вниз.
Рекомендуемый путь обучения, который поможет вам в изучении Android. Чтобы использовать этот контент, имейте в виду, что у дорожной карты есть макроблоки, которые находятся посередине, и из них выходят микроблоки, которые являются более утонченным содержанием по теме родительского блока.
Таким образом, авторы дорожной карты предлагают вам идти из макроблоков в микроблоки, сверху вниз.
Мини-учебник по работе с сетевой библиотекой Moya для iOS, позволяющей создавать безопасную по типу структуру для сетевых сервисов и запросов: https://proglib.io/w/c55e3501
Что выведет программа?
Anonymous Quiz
4%
«Woof!»
8%
«Woof!», «Yip!»
41%
«Yip!»
2%
«Yip!», «Woof!»
2%
Ничего не выведет
40%
Код не скомпилируется
4%
Код скомпилируется, но упадет с ошибкой
Этот код пытается создать новый класс Corgi, который наследуется от существующего класса Dog. Обычно это работает, но здесь класс Dog помечен как конечный (final), что означает, что он не может быть унаследован.
Любая попытка переписать конечный метод, свойство или индекс в подклассе приведет к ошибке компиляции.
Любая попытка переписать конечный метод, свойство или индекс в подклассе приведет к ошибке компиляции.
Простой Github-шаблон, позволяющий создать проект Android/Kotlin и начать работу всего за несколько секунд. Он ориентирован на реализацию проекта со статическим анализом кода и непрерывной интеграцией.
https://proglib.io/w/3feb5420
https://proglib.io/w/3feb5420
GitHub
GitHub - cortinico/kotlin-android-template: Android + Kotlin + Github Actions + ktlint + Detekt + Gradle Kotlin DSL + buildSrc…
Android + Kotlin + Github Actions + ktlint + Detekt + Gradle Kotlin DSL + buildSrc = ❤️ - cortinico/kotlin-android-template
Перевод статьи Norberto Gil Vasconcelos «14 must knows for an iOS developer». Убеждаемся, что всё это уже знаем, или подтягиваем пробелы.
https://proglib.io/w/7eec6a9c
https://proglib.io/w/7eec6a9c
Хабр
14 вещей, которые обязан знать iOS-разработчик
С разрешения автора выкладываю перевод статьи Norberto Gil Vasconcelos «14 must knows for an iOS developer» (ссылка на оригинал). На момент публикации статьи акт...
Какой функционал НЕ предоставляют классы данных в Kotlin?
Anonymous Quiz
11%
Автоматическая генерация функции copy() для создания копий экземпляров
4%
Автоматическая генерация функции toString()
54%
Автоматическое преобразование из / в JSON
8%
Автоматическая генерация функций hashCode() и equals()
6%
Нет правильного ответа
17%
Посмотреть результаты
Классы данных — это очень удобная функция Kotlin для создания классов, основной целью которых является хранение данных, причем компилятор Kotlin автоматически создает такие функции, как equals() / hashCode(), toString(), copy(...), а также компонентные функции componentN(), которые соответствуют свойствам, в соответствии с порядком их объявления. Автоматическое преобразование в / из JSON не является (пока) частью этого процесса.
Стоит отметить, что если какая-либо из этих функций явно определена в теле класса (или унаследована от родительского класса), то генерироваться она не будет.
Чтобы класс определить как класс данных, он должен соответствовать ряду условий:
– первичный конструктор должен иметь как минимум один параметр;
– все параметры первичного конструктора должны предваряться ключевыми словами val или var, то есть определять свойства;
– свойства, которые определяются вне первичного конструктора, не используются в функциях equals() и hashCode();
– класс не должен определяться с модификаторами data, abstract, sealed или inner.
Стоит отметить, что если какая-либо из этих функций явно определена в теле класса (или унаследована от родительского класса), то генерироваться она не будет.
Чтобы класс определить как класс данных, он должен соответствовать ряду условий:
– первичный конструктор должен иметь как минимум один параметр;
– все параметры первичного конструктора должны предваряться ключевыми словами val или var, то есть определять свойства;
– свойства, которые определяются вне первичного конструктора, не используются в функциях equals() и hashCode();
– класс не должен определяться с модификаторами data, abstract, sealed или inner.