Открытый клон Chameleon Launcher

Года два­-три назад я случайно узнал о интересном лаунчере для android ­ chameleon launcher. Купил и какое­-то время даже успешно использовал, пока создатель не потерял к нему интерес.

Привлекло меня в этом лаунчере то, что он позволял превратить домашний экран планшета в информационное табло — тут и rss­ленты, и twitter, и погода и т. д. Всё смотрится красиво и удобно, а место на экране не расходуется зря (а его на экране всегда мало). Кроме того, он позволял писать свои собственные виджеты на js.

Но создатель потерял интерес к своему творению (в своё время он собирал на него деньги через kickstarter) и сначала виджеты перестали работать (они используют сервер для работы), появились баги, которые не фиксились. В итоге недавно приложение и вовсе было удалено из Play Market.

Постепенно у меня начало появляться желание написать аналогичный лаунчер — приценивался к технологиям, но не хотел связываться с Java. Но в эти выходные я решил попробовать свои силы в написании клона этого лаунчера. В этой заметке я расскажу о текущем состоянии дел. Возможно, кто­-то ещё заинтересуется проектом и присоединится к нему.

Основной экран:
image

Cписок приложений:
image

Целью было сделать что­-то более­-менее похожее за минимальное время: для начала без всяких фенечек — анимации, drag&drop и т. п., чтобы потом постепенно довести функционал до нужного состояния. Также я практически не заморачивался кроссдевайсовой вёрсткой и не имею понятия, насколько хорошо будет отображаться это на девайсах, отличных от семидюймовых планшетов (1024×600) в горизонтальном положении. Минимум значит минимум, иначе можно застрять надолго. Я хотел сделать хоть какой­-то прототип для развития, и вообще — пощупать технологии.

Также я сделал одно важное для меня изменение в концепции архитектуры виджетов. Теперь не нужно их хостить на сервере, чтобы делать кроссдоменные запросы. Их можно делать без использования скриптов на сервере.

Что уже есть:
— один экран домашний (пока несколько нельзя, но это один из следующих этапов, попутно буду прибираться в коде)
— виджеты — rss (поддерживает только rss 2.0), погода
— простой список приложений без постраничного листания
— настраиваемая панель быстрых ярлыков (там же есть, временная кнопка refresh для удобства дебага)

Ближайшие планы:
— как-то вынести настройки в конфиг (вот с этим мне нужна в первую очередь помощь, т.к. это моё первое приложение под android и пока не совсем понял экосистему. Небольшой эксперимент провёл по этому вопросу, но пока в коде отключил его)
— несколько домашних экранов
— более удобное API для виджетов
— переписать виджеты rss и погоды
— написать виджет для twitter, часы (с функцией будильника),
— кроссдевайсовая вёрстка (если будут девайсы для тестирования)

В первую очередь я хочу реализовать версию для планшета и лишь потом, возможно, возьмусь за телефон. Поддержка стандартных виджетов android не планируется. Минимально необходимая версия android 4.2 (API 17).

Буду благодарен комментариям, советам и желающим поучаствовать в проекте.
Исходники — github.com/Longer/ClawLauncher (билд).

PS если будет интерес, могу чуть добавить секцию описания технических деталей реализации для тех, кто как и я мало знает о разработки под android.

© Habrahabr.ru