В нашем новом дайджесте карта доверия к мобильным SDK, реки пользовательских данных, интерфейсы и юзабилити, определяющий отчет App Annie об экономике мобильных приложений и многое другое!
Рубрика «kotlin» - 23
Дайджест интересных материалов для мобильного разработчика #282 (14 — 20 января)
2019-01-20 в 9:34, admin, рубрики: android studio, App Store, Google, kotlin, swift, unity3d, ux дизайн, Блог компании Everyday Tools, интерфейсы, искусственный интеллект, маркетинг мобильных приложений, разработка игр, разработка мобильных приложений, Разработка под android, разработка под iOSСубъективное видение идеального языка программирования
2019-01-07 в 14:51, admin, рубрики: c++, cortege, functional programming, kotlin, python, scala, union type, дизайн языков программирования, ненормальное программирование, ПрограммированиеДальнейший текст — моя точка зрения. Возможно, она позволит кому-то по-новому взглянуть на дизайн языков программирования или увидеть какие-то преимущества и недостатки конкретных фич. Я не буду лезть в частные подробности типа "в языке должна быть конструкция while", а просто опишу общие подходы. P.S. У меня когда-то была идея создать свой язык программирования, но это оказалось довольно сложным процессом, который я пока не осилил.
Влияние предыдущего опыта
На написание статьи меня вдохновила вот эта статья. Автор придумал свой язык программирования, и этот язык своим синтаксисом и особенностями оказался подозрительно похожим на Free Pascal, на котором и была написана реализация ВМ для языка. И это не совпадение. Языки программирования, на которых мы раньше писали, загоняют мышление в рамки языка. Мы сами можем не замечать этого, но сторонний наблюдатель с иным опытом может посоветовать что-то неожиданное или сам научиться чему-то новому.
Рамки мышления немного раздвигаются после освоения нескольких языков. Тогда в языке А вам может захотеться иметь фичу из Б и наоборот, а ещё появится осознание сильных и слабых стороны каждого языка.
Например, когда я пробовал придумать и создать свой язык, мои размышления кардинально отличались от тех, что были описаны в статье выше. Я думал о совершенно иных вещах в рамках совершенно иных терминов. Ниже я опишу фичи языка, которые я хотел бы видеть в "идеальном" языке программирования.
Мой опыт: когда-то я начинал с паскаля, впоследствии познакомился с Java, Kotlin, C++, Python, Scheme, а основными языком считаю Scala. Как и в вышеописанном случае, мой "идеальный" язык имеет много общего со Scala. По крайней мере, я отдаю себе отчёт в этом сходстве)
Подписываемся на Kafka по HTTP или как упростить себе Веб-хуки
2019-01-07 в 13:35, admin, рубрики: http, kotlin, ПрограммированиеСуществует множество способов обработки сообщений из Pub-Sub систем: использование отдельного сервиса, выделение изолированного процесса, оркестрация пулом процессов/потоков, сложные IPC, Poll-over-Http и многие другие. Сегодня я хочу рассказать о том, как использовать Pub-Sub по HTTP и про свой сервис, написанный специально для этого.
Использование готового HTTP -бэкенда сервисов в некоторых случаях является идеальным решением для обработки очереди сообщений:
- Балансировка из коробки. Обычно, бэкенд и так стоит за балансировщиком и имеет готовую к нагрузкам инфраструктуру, что сильно упрощает работу с сообщениями.
- Использование обычного REST-контроллера (любой HTTP-ресурс). Потребление сообщений по HTTP сводит к минимуму затраты на реализацию консюмеров под разные языки, если бэкенд разношерстный.
- Упрощение использования Веб-хуков других сервисов. Сейчас почти каждый сервис (Jira, Gitlab, Mattermost, Slack…) так или иначе поддерживает Веб-хуки для взаимодействия с внешним миром. Можно облегчить жизнь, если научить очередь выполнять функции HTTP-диспатчера.
Этот подход имеет и минусы:
- Можно забыть о легковесности решения. HTTP тяжёлый протокол, а использование фреймворков на стороне консюмера мгновенно приведёт к увеличению задержки (latency) и нагрузки.
- Лишаемся сильных сторон Poll-подхода, получая слабые стороны Push.
- Обработка сообщений теми же инстансами сервиса, которые обрабатывают клиентов, может сказаться на отзывчивости. Это несущественно, так как лечится балансировкой и изоляцией.
Я реализовал идею в виде сервиса Queue-Over-Http, о котором и пойдёт речь далее. Проект написан на Kotlin с использованием Spring Boot 2.1. В качестве брокера сейчас доступна только Apache Kafka.
Читать полностью »
Функциональная обработка ошибок в Kotlin с помощью Arrow
2019-01-06 в 12:20, admin, рубрики: arrow, kotlin, функциональное программирование
Привет!
Все любят runtime exceptions. Нет лучшего способа узнать о том, что что-то не было учтено при написании кода. Особенно — если исключения обваливают приложение у миллионов пользователей, и эта новость приходит паническим email'ом с портала аналитики. В субботу утром. Когда ты в загородной поездке.
После подобного всерьез задумываешься о обработке ошибок — и какие же возможности предоставляет нам Kotlin?
Первым на ум приходит try-catch. По мне — отличный вариант, но у него есть две проблемы:
- Это как-никак лишний код (вынужденная обертка вокруг кода, не лучшим образом сказывается на читаемости).
- Не всегда (особенно при использовании сторонних библиотек) из блока catch возможно получить информативное сообщение о том, что конкретно вызвало ошибку.
Давайте посмотрим во что try-catch превращает код при попытке решения вышеозвученных проблем.
Читать полностью »
Kotlin Native: следите за файлами
2019-01-05 в 20:41, admin, рубрики: C, Go, kotlin, Kotlin Native, Программирование, СиКогда вы пишите command line утилиту, последнее, на что вам хочется полагаться, так это на то, что на компьютере где она будет запущена установлен JVM, Ruby или Python. Так же хотелось бы на выходе иметь один бинарный файл, который будет легко запустить. И не возиться слишком много с memory management'ом.
По вышеозначенным причинам, в последние годы всегда, когда мне нужно было писать подобные утилиты, я использовал Go.
У Go относительно простой синтаксис, неплохая стандартная библиотека, есть garbage collection, и на выходе мы получаем один бинарник. Казалось бы, что еще нужно?
Не так давно Kotlin так же стал пробовать себя на схожем поприще в форме Kotlin Native. Предложение звучало многообещающе — GC, единый бинарник, знакомый и удобный синтаксис. Но все ли так хорошо, как хотелось бы?
Читать полностью »
Основы внедрения зависимостей
2019-01-03 в 9:34, admin, рубрики: android, android development, dependency injection, devcolibri, di, kotlin, testing, внедрение зависимостей, никто не читает теги, перевод с английского, Программирование, разработка, разработка мобильных приложений, Разработка под android, тестирование, Тестирование мобильных приложений
В этой статье я расскажу об основах внедрения зависимостей (англ. Dependency Injection, DI) простым языком, а также расскажу о причинах использования этого подхода. Эта статья предназначена для тех, кто не знает, что такое внедрение зависимостей, или сомневается в необходимости использования этого приёма. Итак, начнём.
GDG SPb. Что мы успели сделать за год
2018-12-27 в 13:01, admin, рубрики: android, assistant, devfest, gdg, Google, JUG, kotlin, kug, конференции, Разработка под android
Сообщество «Google Developers Group» в Петербурге основано в 2006 году. Однако подвести итоги года мы решили впервые. GDG проводит IT конференции и митапы для разработчиков Android, Kotlin, Scala, Firebase, Dart и Assistant. В 2018 году мы провели 17 конференций и митапов. Под катом вы найдете не только итоги и отзывы о мероприятиях, а еще все материалы и записи классных докладов!
Практический пример создания собственного View-компонента
2018-12-27 в 11:43, admin, рубрики: android, android development, design, devcolibri, kotlin, material design, material theming, дизайн мобильных приложений, никто не читает теги, перевод с английского, Программирование, разработка, разработка мобильных приложений, Разработка под android
Мне нравится Dribbble. Там есть много крутых и вдохновляющих дизайн-проектов. Но если вы разработчик, то часто чувство прекрасного быстро сменяется на отчаяние, когда вы начинаете думать о том, как реализовать этот крутой дизайн.
В этой статье я покажу вам пример такого дизайна и его реализацию, но перед этим давайте поговорим о решении проблемы в целом.
Обзор droidcon SF
2018-12-26 в 8:46, admin, рубрики: android, Android conference, conference overview, droidcon, droidconSF, funcorp, kotlin, Блог компании FunCorp, конференции, разработка мобильных приложений, Разработка под android
Привет! Меня зовут Александр Колобанов, я Android-тимлид в компании FunCorp. В ноябре я был на droidcon в Сан-Франциско. Под катом небольшой обзор конференции, путевые заметки и немного фоточек.Читать полностью »