Обновить
9
0
Алексей Скробот @Scrobot

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

Отправить сообщение

Немного о Kotlin

Время на прочтение9 мин
Количество просмотров206K
image

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

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

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

Время на прочтение14 мин
Количество просмотров406K
Здравствуй Хабрахабр!

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

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


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

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

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

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

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

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

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

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

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

Время на прочтение6 мин
Количество просмотров5.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 января)

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

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

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

Время на прочтение8 мин
Количество просмотров146K


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

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

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

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

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

Время на прочтение3 мин
Количество просмотров12K
На этой неделе — история одного интересного прогресс-бара, повышение цен в App Store, слухи о закрытии линейки Lumia и Windows Phone, разговоры про UI и UX и много другого интересного из мира мобильных приложений.

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

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

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



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

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

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

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

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

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


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

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

Время на прочтение4 мин
Количество просмотров21K


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

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

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

Время на прочтение13 мин
Количество просмотров33K
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 декабря)

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

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

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

Время на прочтение3 мин
Количество просмотров12K
В новом дайджесте мы сравниваем Swift и Rust, оцениваем гайдлайны Apple, следим Xamarin.Forms, обновляем приложения в Google Play к Новому году, выводим в топ и смотрим за покупками.

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

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

Время на прочтение23 мин
Количество просмотров29K
image

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

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

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

Время на прочтение11 мин
Количество просмотров81K

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

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

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

Время на прочтение3 мин
Количество просмотров143K
Это статья про семь простых правил, которые я сформулировал для себя за годы работы программистом. Семь правил, которые подняли мою эффективность. Сделали меня лучше. Это мои правила и они работают для меня. Я не пытаюсь навязать их вам, я хочу поделиться с вами, и, возможно, узнать о том, каких правил и принципов придерживаетесь вы.

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


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

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

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

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



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


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


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

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

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


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

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность