В примере используются функциональные типы как типы параметров.
Функция
При вызове функция
Задача функции
Функция
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
Распознаем текст из картинки в андроиде
Что означает «to» в приведенном примере на языке Kotlin:
val test = 33 to 42
val test = 33 to 42
Anonymous Quiz
17%
Ключевое слово Kotlin для создания пары (33, 42)
21%
Инфиксная (Inflix) функция, создающая пару (33, 42)
46%
Ключевое слово Kotlin для создания диапазона чисел от 33 до 42
3%
Ошибка синтаксиса
14%
Посмотреть результаты
Kotlin позволяет вызывать некоторые функции без использования точки и скобок. Они называются инфиксными (infix) методами, и их использование может привести к тому, что код будет намного больше похож на естественный язык.
В нашем примере to является методом, использующим нотацию инфикса и возвращающим Pair<A, B>, т. е. пару (33, 42).
В документации это выглядит следующим образом:
В нашем примере to является методом, использующим нотацию инфикса и возвращающим Pair<A, B>, т. е. пару (33, 42).
В документации это выглядит следующим образом:
infix fun <A, B> A. to(that: B): Pair<A, B>.Инструменты для Mac, помогающие процессу написания или организации кода, совместной работе с дизайнерами или тестированию кода:
– Tower
– Kaleidoscope
– xScope
– VMWare Fusion
– Transmit
– ScreenFlow
Подробности в источнике: https://proglib.io/w/ad998c78
– Tower
– Kaleidoscope
– xScope
– VMWare Fusion
– Transmit
– ScreenFlow
Подробности в источнике: https://proglib.io/w/ad998c78
Git-Tower
Tower Git Client - Tower — The most powerful Git client for Mac and Windows
Over 100,000 developers and designers are more productive with Tower - the most powerful Git client for Mac and Windows.
Дизайн мобильного приложения, который не требует от пользователей много думать и фокусируется на эмоциях, мотивации и потребностях, можно назвать оптимальным дизайном. Если вы хотите создать технологически продвинутый продукт, который откликнется в сердце ваших пользователей, то ловите набор лучших практик в разработке дизайна мобильных приложений в 2020 году: https://proglib.io/w/4f9cf6dc
Medium
Best Practices in Mobile App Design in 2020
Optimal mobile app design is all about personalized communication, a friendly voice, and intuitive interaction. In other words, design…
Что выведет программа?
Anonymous Quiz
24%
protocol
39%
class
18%
Ошибка компиляции
3%
Нет правильного ответа
18%
Посмотреть результаты
#swiftquiz
Правильным ответом является «protocol». Связано это с тем, что:
– render вызывает circle, который объявлен в расширении Drawing;
– circle не является частью точек настройки Drawing, то есть он не отправляется динамически;
– таким образом, метод circle в SVG не вызывается методом render.
При создании приложения время от времени вы можете задаться вопросом, почему метод не вызывается, даже если вы добавили конкретное переопределение (как это сделано с методом circle). Если метод не является частью протокола, он не будет вызван, потому что только эти методы будут динамически отправляться. Обратите внимание, что вы можете добавить метод к протоколу и предоставить реализацию по умолчанию в расширении. Это все еще позволяет вам переопределить метод в соответствующем типе.
Правильным ответом является «protocol». Связано это с тем, что:
– render вызывает circle, который объявлен в расширении Drawing;
– circle не является частью точек настройки Drawing, то есть он не отправляется динамически;
– таким образом, метод circle в SVG не вызывается методом render.
При создании приложения время от времени вы можете задаться вопросом, почему метод не вызывается, даже если вы добавили конкретное переопределение (как это сделано с методом circle). Если метод не является частью протокола, он не будет вызван, потому что только эти методы будут динамически отправляться. Обратите внимание, что вы можете добавить метод к протоколу и предоставить реализацию по умолчанию в расширении. Это все еще позволяет вам переопределить метод в соответствующем типе.
Team Lead Android команды разработки Spark Mail рассказывает о том как они шарят код между iOS и Android, используя при этом Swift. Материал доступен в видеоформате и в формате подкаста.
YouTube
Swift на Android для шаринга кода
Team Lead Android команды разработки Spark Mail рассказывает о том как они шарят код между iOS и Android, используя при этом Swift.
Гости:
- Андрей Друк (https://twitter.com/AndriyDruk). Team Lead Android команды Spark Mail в Readdle
- Данис Тазетдинов …
Гости:
- Андрей Друк (https://twitter.com/AndriyDruk). Team Lead Android команды Spark Mail в Readdle
- Данис Тазетдинов …
В статье кратко описаны способы устранения пяти самых популярных ошибок в iOS-приложениях: https://proglib.io/w/74efefde
Instabug Blog
How to Fix the Top 5 iOS Crashes | Instabug Blog
To help minimize your app crashes and the time it takes to resolve them, we’ve compiled the most common iOS crashes and how to fix them.
Обзор функций SwiftUI, которые вам понадобятся в каждом iOS-приложении: https://proglib.io/w/bfab2da6
Matteo Manferdini
A Practical SwiftUI Kickstart
SwiftUI is a new framework to create user interfaces on iOS and other Apple platforms. Quickly learn the power of its declarative syntax to build any app.