Search
Write a publication
Pull to refresh
1
0.4

Системотехник

Send message

«Скорее всего, будет расти как снежный ком» — Андрей Бреслав и Антон Кекс о Kotlin

Reading time25 min
Views25K


За год, прошедший с релиза Kotlin 1.0, у языка произошли прорывы по многим фронтам: от поддержки в Gradle и Spring до выхода книги «Kotlin in Action». Число Kotlin-строк на GitHub возросло более чем вчетверо, превысив 10 миллионов. А теперь вышла версия 1.1, добавляющая компиляцию в JavaScript, и это выглядит громкой заявкой на новую долю рынка. Означает ли это всё, что вот теперь время Kotlin по-настоящему пришло, и нам всем пора активно использовать язык в продакшене?

Андрей Бреслав (JetBrains) и Антон Кекс (Codeborne) многое знают о Kotlin (и оба скоро выступят на JPoint с докладами о нём), но при этом смотрят на него с разных сторон: пока Антон разрабатывает на этом языке, Андрей работает над самим языком. Мы решили, что о настоящем и будущем Kotlin интересно поговорить с ними обоими сразу, получив полную картину. Начав с вопросов о бурном росте, затем успели обсудить ещё многое:

  • Взаимодействие с разработчиками и процесс эволюции языка
  • Компиляцию в JS, проект Kotlin Native и мультиплатформенность в общем
  • Несовершенства
  • Kotlin-паззлеры
  • Ожидания и амбиции
Читать дальше →

Пишем на Kotlin под Android

Reading time7 min
Views99K
Года два назад я обнаружил, что в Android Market нет удобных мне приложений для учета времени, затраченного на разные проекты. Как настоящий лентяй, я решил не искать требуемое, а написать его сам. Это оказалось несколько сложнее, чем казалось вначале, и я все забросил в режиме вялотекущего хобби воплощение моего желания прожило больше года, медленно продвигаясь от идеи к альфа-версии.

И тут вдруг добрые люди предложили мне рассказать, как писать под Android на Kotlin'e. Мне показалось, что это добрый знак, и я быстро переписал приложение на Kotlin, закончил его и выложил в Google Play.

Важное уточнение: эта статья — только про то, как писать под Android на Kotlin'e. Интересно будет только тем, кто хочет попробовать Kotlin, и тем, кто хочет понять, зачем его пробовать. Приложение, которое я написал — очень-очень простое (и само по себе никак не относится к JetBrains). В его коде гарантированно можно что-то улучшить, оно выложено на Github только для примера, а не в качестве образца восхитительного кода. Оно работает, и если вам хочется его попробовать, то поставить можно отсюда. Но еще раз: это — демо, его цель — быть не совершенным приложением, а введением в Kotlin под Андроид.

Опять что-то новое. И зачем мне это знать?



Читать дальше →

Пишем простой RESTful сервис на kotlin и spring boot

Reading time13 min
Views33K
image

Введение


В преддверии выхода языка Kotlin из beta, хочется поделиться своим впечатлением от его использования.

Kotlin — это новый прекрасный язык от JetBrains (разработчиков IntelliJ Idea) для JVM, Android и браузера, который на первый взгляд выглядит как улучшенная java (или как упрощенная scala). Но это только на первый взгляд, язык не только впитал в себя многие интересные решения от других языков, но и представляет свои оригинальные:

— optional от swift, nullsafe в kotlin
— case классы из scala, data class в kotlin
— замена implicit методам из scala, extension функций
делегаты
null safely
smart cast
— и многое другое, подробнее можно посмотреть на официальном сайте kotlinlang.

Для тех кто знаком с java или scala, будет интересно сравнение kotlin & java, kotlin & scala.

Авторы языка стремятся добиться двух задач:
— сделать скорость компиляции сравнимой с java
— язык должен быть достаточно выразительным, и при этом быть простым насколько возможно
Поэтому, стоит оговориться, что если вы на текущей момент счастливы со scala, с ее «сложностью» и временем компиляции, тогда вам скорее всего не нужен будет kotlin, для всех остальных читать дальше:
Читать дальше →

Kotlin для Android: Теперь официально

Reading time4 min
Views36K
Вчера на конференции Google I/O 2017 команда Android объявила об официальной поддержке языка Kotlin для разработки Android-приложений. Это огромный шаг вперед для Kotlin, и отличная новость для всего сообщества Android-разработчиков.

Kotlin дает разработчикам Android-приложений возможность использовать мощный современный язык, код на котором получается более компактным и надежным, уменьшая вероятность падения приложений у пользователей. Kotlin прост в освоении и отлично сочетается с Java, что позволяет постепенно внедрять его в существующие проекты, не теряя накопленный опыт, навыки и технологии.

Плагин для поддержки Kotlin теперь входит в поставку Android Studio 3.0, так что разработчикам не нужно ставить дополнительные плагины или беспокоиться о совместимости. JetBrains и Google также берут на себя обязательство поддерживать разработку на Kotlin и в будущем, по мере развития Android-платформы.

При этом другие платформы, которые поддерживают Kotlin (Kotlin/JVM для разработки серверных и десктопных приложений, Kotlin/JS для браузера и Kotlin/Nativе для нативной разработки) остаются не менее важными для JetBrains. Наше видение заключается в том, чтобы создать единый инструмент, позволяющий разрабатывать все компоненты современного приложения на одном и том же языке, независимо от того, на какой платформе эти компоненты запускаются. Это включает в себя и full-stack веб-приложения, и мобильные клиенты под Android и iOS, и встраиваемые платформы IoT, и другое.
Читать дальше →

Пишем MVP приложение на Kotlin под Android

Reading time19 min
Views115K


Разработка приложений на Kotlin под Android набирает популярность среди разработчиков, однако статей в русскоязычном сегменте Интернета довольно мало. Я решил немного подправить ситуацию, и написать туториал по разработке приложения на Kotlin. Мы напишем полноценное приложение с использованием всех трендовых библиотек (кроме RxJava) в мире Android-разработки. В конце у нас должно получиться расширяемое и легко тестируемое приложение (сами тесты мы писать не будем).
Читать дальше →

Почему следует полностью переходить на Kotlin

Reading time6 min
Views95K


Хочу рассказать вам о новом языке программирования, который называется Kotlin, и объяснить, почему вам стоит использовать его в своём следующем проекте. Раньше я предпочитал Java, но в последний год пишу на Kotlin везде, где только можно. И в данный момент я не представляю себе ситуации, в которой лучше было бы выбрать Java.


Kotlin разработан в JetBrains, и участие тех же людей в создании наборов IDE, таких как IntelliJ и ReSharper, хорошо заметно по самому языку. Он прагматичен и краток, благодаря чему написание кода превращается в приятный и эффективный процесс.


Хотя Kotlin компилируется в JavaScript и скоро будет компилироваться в машинный код, я сконцентрируюсь на его первичной среде — JVM.


Итак, несколько причин, почему вам следует полностью переходить на Kotlin (порядок случаен):

Читать дальше →

Почему Kotlin отстой

Reading time12 min
Views76K

Эта статья родилась по мотивам вот этой статьи в виде полу-шутки. В той статье большая часть "проблем" является либо синтетическими и крайне редко используемыми, либо притянутыми за уши из-за ожидания соответствия языка теоретической парадигме которой, по мнению автора, язык должен соответствовать. С другой стороны не упомянуты вещи, которые мне лично действительно усложняют жизнь.

Читать дальше →

Идиоматичный Kotlin, набор хороших практик

Reading time9 min
Views27K


Чтобы полностью раскрыть все преимущества Kotlin, пересмотрим некоторые подходы, которые мы используем в Java. Многие из них могут быть заменены на лучшие аналоги из Kotlin. Давайте посмотрим на то, как мы можем написать идиоматичный код на Kotlin.
Читать дальше →

Побеждаем Android Camera2 API с помощью RxJava2 (часть 1)

Reading time21 min
Views37K


Как известно, RxJava идеально подходит для решения двух задач: обработки потоков событий и работы с асинхронными методами. В одном из предыдущих постов я показал, как можно построить цепочку операторов, обрабатывающую поток событий от сенсора. А сегодня я хочу продемонстрировать, как RxJava применяется для работы с существенно асинхронным API. В качестве такого API я выбрал Camera2 API.


Ниже будет показан пример использования Camera2 API, который пока довольно слабо задокументирован и изучен сообществом. Для его укрощения будет использована RxJava2. Вторая версия этой популярной библиотеки вышла сравнительно недавно, и примеров на ней тоже немного.


Для кого этот пост? Я рассчитываю, что читатель – умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании (хорошее введение – здесь) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто хочет использовать Camera2 API в своих проектах. Предупреждаю, будет много кода!


Исходники проекта можно найти на GitHub.

Читать дальше →

Исследуем RxJava 2 для Android

Reading time25 min
Views214K

enter image description here


Меня зовут Аркадий, я Android-разработчик в Badoo. В последнее время в нашем блоге много постов про Go, PHP, JS, QA, и я решил разбавить их темами по мобильной разработке. Как раз занимался портированием одного Android-проекта с RxJava 1 на RxJava 2 и читал всё, что можно найти на эту тему в интернете. В частности, доклад Джейка Вортона с конференции GOTO Copenhagen 2016. Мне показалось, что это достойный кандидат на перевод – думаю, многие Android-разработчики задумываются о переходе на RxJava 2, и им интересно, что изменилось по сравнению с первой версией.


Джейк сделал достаточно объёмное введение о реактивном программировании, так что знание RxJava 1 не требуется для понимания статьи. Доклад был подготовлен, когда RxJava2 ещё только готовилась к выпуску (на текущий момент уже выпущена версия 2.1.0).

Читать дальше →

Какого! закона вы ещё хотели? У меня есть их! Блокируем VPN

Reading time3 min
Views66K
Есть прогнозы, которые не хочется делать; есть те, что не хочется, чтобы сбылись. Новый закон сразу из двух форм. Публикации о нём уже завоёвывают Рунет и Хабр. Но я, как всегда, скажу не кратко, а постатейно.

Но прежде — прелюдия эмоций. Не моих.


Читать дальше →

«Прикорнуть немножечко»: чек-лист для короткого перерыва на сон

Reading time3 min
Views29K
Здоровый сон — понятие субъективное. Работать над улучшением качества сна сложно или практически невозможно в силу индивидуальных жизненных обстоятельств. Мы решили подготовить краткий чек-лист, который поможет быстро погрузиться в эту тему и найти подходящие тематические источники, которые подойдут именно вам.

В любом случае: мы советуем проводить какие-либо кардинальные эксперименты после согласования своего плана действий со специалистами.


Читать дальше →

Основы реактивного программирования под Android на практическом примере

Reading time8 min
Views41K

1. Введение в реактивное программирование


Разрабатывая сложное приложение под Android со множеством сетевых соединений, взаимодействием с пользователем и анимацией — означает писать код, который полон вложенных обратных вызовов. И по мере развития проекта такой код становится не только громоздким и трудно понимаемым, но также сложным в развитии, поддержке и подвержен множеством трудноуловимым ошибкам.

ReactiveX или функциональное реактивное программирование предлагает альтернативный подход, который позволяет значительно сократить код приложения и создавать изящные понимаемые приложения для управления асинхронными задачами и событиями. В реактивном программировании потребитель реагирует на данные, как они придут и распространяет изменения события в зарегистрированных наблюдателях.

RxJava — реализация ReactiveX с открытым исходным кодом на Java. Базовыми строительными блоками реактивного кода являются Observables и Subscribers. Подробнее с базовой основой можно ознакомиться в статье Грокаем* RxJava, часть первая: основы.

RxAndroid — расширение к RxJava, которое позволяет планировщику запускать код в основном и дополнительных потоках Android приложения и обеспечивает передачу результатов из созданных дополнительных потоках в основное для агрегации и взаимодействия с интерфейсом пользователя.
С целью более полного понимания основных принципов реактивного программирования рассмотрим практический пример для платформы Android. И начнем с настройки окружения для разработки.
Читать дальше →

Вторая группа обучения Java и наши новости

Reading time3 min
Views4.5K
В апреле на образовательной платформе Otus.ru стартовал первый образовательный курс для Java-программистов, обучение на котором продлится пять месяцев. Занятия идут своим чередом в онлайн формате, обучение программистов проходит в группах через вебинары и домашние задания. Проекты максимально приближены к реальным условиям: решаются актуальные задачи, уклон делается на практические навыки. Преподаватель курса – профессиональный разработчик и опытный педагог Виталий Чибриков — такое сочетание не часто можно встретить, тем более оно ценно. Мы считаем очень важным, что в процессе обучения студент получает возможность поработать с профессионалом своего дела.
Читать дальше →

Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие

Reading time3 min
Views143K

В детстве мы постигаем премудрости жизни через игру. Это важнейший элемент развития личности, социальных навыков, получения знаний об окружающем мире. Игры — хороший «контейнер» для донесения и закрепления каких-либо знаний. Яркий пример — игры, в которых нужно писать код. Наверняка все вы о них слышали, а в некоторые даже играли. Их первичная задача — развлечь людей, уже владеющих навыками программирования, но они могут использоваться и для обучения. Эти игры помогут освежить свои знания по тому или иному языку, отвлечься и заняться более простой алгоритмической задачей.

Разработка менеджера паролей под Android

Reading time7 min
Views10K
Приветствую всех. Хочу рассказать вам историю разработки своего первого мобильного приложения под Android и поделиться различными её деталями. В частности будет рассказано об архитектуре, и используемых инструментах.


Читать дальше →

Пять книг по программированию, которые стоит прочесть

Reading time3 min
Views62K
Выбрать всего пять книг оказалось непростой задачей. Каждый раз, добавляя книгу в список, я задавал вопрос: почему именно эта? Я решил выделить пять ключевых направлений, в которых должен развиваться разработчик, и привести по одному примеру книги в каждом из них.

Уверен, вы сможете предложить варианты не хуже, а возможно, и лучше. Я называю книги, впечатлившие меня, или те, с которыми сталкивался чаще. В любом случае, их будет полезно прочесть как начинающим разработчикам, так и тем, кто уже обладает достаточным опытом.


Читать дальше →

«Буква закона»: Немного о защите персональных данных

Reading time5 min
Views9.7K
10 мая президент Владимир Путин утвердил «Стратегию развития информационного общества в РФ» на период с 2017 по 2030 год. В документе был прописан план по импортозамещению, согласно которому необходимо заменить иностранное программное обеспечение и электронные базы на российские аналоги, а также обеспечить использование отечественных средств шифрования при электронном взаимодействии федеральных органов власти.

Читать дальше →

Здоровый программист — счастливый программист

Reading time6 min
Views52K


Нам приходится работать очень напряженно: вредные начальники (не все), жесткие сроки, мозговые штурмы, решение самых разных проблем и, прежде всего, работа допоздна не лучшим образом отражаются на здоровье. Все вышеперечисленные обстоятельства приводят к депрессии, курению, «заеданию» стресса — словом, портят здоровье.

А от здоровья в конечном итоге зависит наша жизнь — и это главная причина что-то с этим делать. Вторая по важности причина — от этого зависит карьера. Часто разработчики жалуются, что у них болит спина — иногда настолько сильно, что они не могут сидеть за столом. У многих из-за постоянного использования клавиатуры и мыши проблемы с запястьями. Все это может сделать работу неприятной, а в худшем случае и невозможной. И дело не только в мелких недугах: такая работа без заботы о собственном здоровье может укоротить жизнь. Возможно, это звучит слишком громко, но давайте вспомним, что главная причина смертности в мире — сердечно-сосудистые заболевания. Кроме того, все больше распространяются такие заболевания, как диабет 2-го типа и ожирение. Образ жизни программиста способствует появлению этих проблем, однако в большинстве случаев их можно предотвратить с помощью физических упражнений и правильного питания. Мы рассмотрим причины этих и других проблем со здоровьем, а затем поговорим о том, как эти причины устранить.

Переведено в Alconost
Читать дальше →

Системный подход к тестированию Android-приложений, или О чем молчали разработчики

Reading time8 min
Views30K

У каждого тестировщика рано или поздно наступает неловкий момент. Обнаружился вредный баг и его необходимо локализовать. По закону подлости баг воспроизводится нестабильно, при непонятных шагах и только на некоторых устройствах. Есть логи, но они не информативны. Разработчик занимается новой функциональностью, он не может отвлечься от текущих задач, пока не будут найдены четкие шаги воспроизведения. Менеджер ждет исправления (надо быстрее, заказчик переживает).


Как внести ясность в такой ситуации? Некуда деваться, пора разбираться, что же там происходит «под капотом» приложения.


Читать дальше →

Information

Rating
3,822-nd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity