Pull to refresh
10
0
Алексей Скробот @Scrobot

Пользователь

Send message

Немного о Kotlin

Reading time9 min
Views206K
image

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

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

Рекурсия. Занимательные задачки

Reading time14 min
Views405K
Здравствуй Хабрахабр!

В этой статье речь пойдет о задачах на рекурсию и о том как их решать.
image

Кратко о рекурсии


Рекурсия достаточно распространённое явление, которое встречается не только в областях науки, но и в повседневной жизни. Например, эффект Дросте, треугольник Серпинского и т. д. Один из вариантов увидеть рекурсию – это навести Web-камеру на экран монитора компьютера, естественно, предварительно её включив. Таким образом, камера будет записывать изображение экрана компьютера, и выводить его же на этот экран, получится что-то вроде замкнутого цикла. В итоге мы будем наблюдать нечто похожее на тоннель.

В программировании рекурсия тесно связана с функциями, точнее именно благодаря функциям в программировании существует такое понятие как рекурсия или рекурсивная функция. Простыми словами, рекурсия – определение части функции (метода) через саму себя, то есть это функция, которая вызывает саму себя, непосредственно (в своём теле) или косвенно (через другую функцию).

О рекурсии сказано много. Вот несколько хороших ресурсов:
Читать дальше →

Кому жить, а кому умереть: приоритеты процессов в Android

Reading time7 min
Views36K
Примечание переводчика: при переводе старался максимально пользоваться терминологией, которую предлагает сам Google в русскоязычной версии документации по Android, таким образом «service» стал «службой», «content provider» стал «поставщиком контента», и так далее. А вот «activity» стать «операцией» так и не смог — не пересилил я себя. Извините.

Давайте признаем: мобильные устройства не обладают бесконечной памятью, бесконечным зарядом батареи, или чем-то ещё бесконечным. Для нас это означает следующее: мы должны рассматривать смерть процесса как натуральную часть жизненного цикла наших приложений. Важно убедиться, что освобождение памяти, связанное с уничтожением процесса, не приводит к негативным для нашего пользователя последствиям. Для выполнения этой задачи большая часть архитектуры процессов в Android была создана таким образом, чтобы обеспечить жёсткую иерархию, в соответствии с которой процессы живут и умирают.
Читать дальше →

Как продать приложение, которое не приносит прибыль? И сколько оно стоит?

Reading time5 min
Views52K
Давайте посмотрим правде в глаза — заработать на инди-приложении становится все сложнее. Под катом я расскажу, как можно продать ваше приложение, если оно перестало приносить прибыль, и сколько можно получить. В долларах :)
Читать дальше →

Руководство по миграции сервера Parse для разработчиков

Reading time6 min
Views5.9K
Если вы использовали услуги хостинга Parse в качестве бэкенда для своих мобильных приложений, то сейчас вероятно настал идеальный момент попробовать Azure App Service. В связи с последними новостями, ребята из Parse предложили пути миграции существующих бэкендов с Parse на другие площадки. Мы рассчитываем, что когда вы станете искать такую альтернативную площадку, то попробуете и Azure.

Легкий путь миграции


Как предлагается в руководстве по миграции, вы можете мигрировать бэкенд Parse вашего приложения на другой хост, на котором развернут сервер с Parse API размещенный на базе Express. Azure App Service предлагает замечательную альтернативу для хостинга вашей реализации сервера Parse. В конце концов, Node.js-бэкенд предлагаемый в Mobile App в сервисе Azure App Service – это тоже Express. Для того чтобы еще сильнее упростить первые шаги, команда Azure App Service предложила готовый процесс развертывания, который сильно упрощает для вас запуск первого сервера Parse в App Service.

Перед тем как начать, вам стоит почитать руководство по миграции Parse, для того чтобы понять что поддерживается, а что нет в новом сервере Parse. Одной из основных функций, которые отсутствуют в сервере Parse являются пуш-уведомления, но служба Azure Notification Hubs предложит вам готовую альтернативу.

Когда миграция будет завершена, вы можете продолжить использовать клиентские Parse SDK в своих приложениях для доступа к данным (конечно, клиенты должны будут обновлены для использования новых версий SDK и использовать новое расположение сервиса.).
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #138 (24-31 января)

Reading time3 min
Views11K
Главной новостью этой недели стало закрытие Parse, одного из лучших мобильных бэкендов. За пределами этого — нарезка ресурсов, геолокация на Android, оптимизация игр, приближение виртуальной реальности и много других интересных новостей.

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

Построение Android приложений шаг за шагом, часть первая

Reading time8 min
Views146K


В этой статье мы поговорим о проектировании архитектуры и создании мобильного приложения на основе паттерна MVP с использованием RxJava и Retrofit. Тема получилась довольно большой, поэтому подаваться будет отдельными порциями: в первой мы проектируем и создаем приложение, во второй занимаемся DI с помощью Dagger 2 и пишем тесты unit тесты, в третьей дописываем интеграционные и функциональные тесты, а также размышляем о TDD в реалиях Android разработки.
Читать дальше →

Можно ли сделать игру без художника за 2 дня? Devstory моей игры Neobug Rush 2 Players

Reading time4 min
Views32K
Добрый день! Игры не являются основным родом моей деятельности, это скорее хобби. Статья может оказаться полезной начинающим indie-разработчикам, у которых, как и у меня, нет ни команды, ни знакомых художников, ни бюджета на фриланс и продвижение игры. Но что более важно, есть энтузиазм, время и хорошие идеи. Итак, кому интересно, прошу под кат!

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

Дайджест интересных материалов для мобильного разработчика #137 (18-24 января)

Reading time3 min
Views12K
На этой неделе — история одного интересного прогресс-бара, повышение цен в App Store, слухи о закрытии линейки Lumia и Windows Phone, разговоры про UI и UX и много другого интересного из мира мобильных приложений.

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

Gradle: управляя зависимостями

Reading time10 min
Views138K
Управление зависимостями – одна из наиболее важных функций в арсенале систем сборки. С приходом Gradle в качестве основной системы сборки Android-проектов в части управления зависимостями произошёл существенный сдвиг, закончилась эпоха ручного копирования JAR-файлов и долгих танцев с бубном вокруг сбоящих конфигураций проекта.



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

Внимание много текста и изображений

Как правильно внести свою лепту в Open Source проект: простые подсказки

Reading time6 min
Views70K
Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


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

PHP-Дайджест № 77 – интересные новости, материалы и инструменты (1 – 17 января 2016)

Reading time4 min
Views21K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →

Пишем простой 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, для всех остальных читать дальше:
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #135 (21-27 декабря)

Reading time3 min
Views11K
В последнем дайджесте 2015 года история Сбербанка, песочница для Swift, конкурс игр Unity для Windows Store, конкурс приложений ВКонтакте, много аналитики. Ну а вообще – с Новым годом! Делайте хорошие приложения, не делайте плохих! :)

C наступающим!

Дайджест интересных материалов для мобильного разработчика #134 (14-20 декабря)

Reading time3 min
Views12K
В новом дайджесте мы сравниваем Swift и Rust, оцениваем гайдлайны Apple, следим Xamarin.Forms, обновляем приложения в Google Play к Новому году, выводим в топ и смотрим за покупками.

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

Немного о сборке мобильного приложения

Reading time23 min
Views29K
image

Я помню то замечательное время, когда сборка релизной версии мобильного приложения сводилась к тому, что нужно было выставить debug = false и запустить экспорт apk-файла. Проходит 2 минуты, пока пыхтит IDE, и все готово. Все усилия сосредотачивались на необходимости указать данные сертификата подписи. Это было совсем недавно. Cейчас процесс сборки того самого приложения разросся настолько, что, если мне, вдруг, потребуется выполнить все операции самостоятельно, и даже если я все вспомню и проделаю безошибочно (во что я не верю), то это займет не час, который сегодня кажется непозволительно долгим, а, скорее всего, сутки, после чего терапевт обязан будет прописать мне больничный по усталости недели на две.

Итак, процесс сборки мобильного приложения. Попробую рассказать, из чего он у нас состоит — не потому, что в последнее время стало модным катать посты о CI той или иной мобильной команды (с покером, русалками и прочими обязательными атрибутами), а потому, что это отличный опыт, который я получил, работая над Почтой Mail.Ru для Android, и потому, что этой возможности, вероятнее всего, не было бы, работай я в другой команде, над другим проектом или в другой компании.
Читать дальше →

Dagger 2 и структура приложения для Android

Reading time11 min
Views81K

Добрый день! Наша команда уже больше года занимается разработкой почтового клиента МойОфис для платформы Android (приложения МойОфис мы разрабатываем для всех популярных платформ).

Сегодня мы хотим рассказать о технологиях, которые мы используем в разработке нашего почтового клиента. А именно, о механизмах Dependency Injection в виде библиотеки Dagger 2. В статье мы опишем основные части библиотеки и расскажем, как их использовать в Android-проекте.
Подробности

7 золотых правил одного программиста

Reading time3 min
Views143K
Это статья про семь простых правил, которые я сформулировал для себя за годы работы программистом. Семь правил, которые подняли мою эффективность. Сделали меня лучше. Это мои правила и они работают для меня. Я не пытаюсь навязать их вам, я хочу поделиться с вами, и, возможно, узнать о том, каких правил и принципов придерживаетесь вы.

Компьютер всегда прав


Самая раздражающая ситуация в программировании — когда код верный, но не работает. “Да тут три строчки, блин, просто негде ошибиться! Наверное баг! Пойду потрачу три дня на изучение баг-репортов компилятора/интерпретатора/фреймворка...”. Возникает чувство, будто компьютер над вами издевается!

Тут главное помнить, что в этих трех строчках есть ошибка. Если код работает не верно — значит код написан не верно. Точка. Виноваты только вы. Универсальный совет — идите спать! Ну или хотя бы отвлекитесь на чашку чая. Когда, через некоторое время, вы вернетесь к коду, наверняка станет ясно, что тут лишний оператор отрицания, или перепутаны две переменные с похожими именами, или еще какая-нибудь мелочь, в которой мы никогда никому не признаемся.
Читать дальше →

«IT — это достаточно бедная индустрия» — интервью с Дмитрием Нестеруком из JetBrains

Reading time29 min
Views83K
Всем привет. Это снова «Без слайдов», и сегодня у меня для вас интервью с Дмитрием Нестеруком aka mezastel, техническим евангелистом компании JetBrains. Дмитрия я знаю довольно давно и, не скрою, сам очень долго ждал момента, когда мы наконец поедем на студию и запишемся. Уж больно много вопросов у меня к нему накопилось.



Мы больше часа беседовали с Дмитрием, но не успели затронуть даже половины тем, которые хотелось обсудить. Что Дмитрий успел рассказать мне:
  • Чем технический евангелист отличается от Developer Advocate
  • Как работает евангелизм в JetBrains
  • О восприятии мира настоящими гиками
  • Почему IT — это бедная индустрия
  • Про маржу и инвестиции российских аутсорсеров
  • Про то, какие enterprise решения позорят индустрию и почему
  • Насколько далека JetBrains от своего простого потребителя
  • Об том, как индустрия видеоигр смогла «вырастить» под себя целый сектор железа
  • Что сейчас творится на рынке видеокарт
  • Что еще могут придумать компании, для того, чтобы программы работали быстрее
  • О том, как будет выживать ReSharper и о 64-битных IDE от Microsoft


Вот видео, а под катом, как обычно, текстовая версия этого интервью.


(на одиннадцатой минуте нет звука, к сожалению.)
Читать дальше →

Gradle: 5 полезностей для разработчика

Reading time6 min
Views44K
Привет, Хабр! Настало время, когда можно сказать, что «new build system» Gradle является стандартом отрасли Android-разработки. Инструмент сделан настолько просто и удобно, что большинство разработчиков не испытает трудностей, даже не зная, как он устроен, и какие дополнительные возможности в нём есть — возникающие проблемы легко решаются с помощью 5 минут на StackOverflow, путем копирования «магического кода» в конфигурационные файлы. Возможно, в том числе из-за этого не все разработчики изучают Gradle детально и не знают о многих его полезных возможностях, которые существенно облегчают жизнь.


Сегодня рассмотрим пять таких полезностей

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity