Открытый клон Chameleon Launcher
Года два-три назад я случайно узнал о интересном лаунчере для android chameleon launcher. Купил и какое-то время даже успешно использовал, пока создатель не потерял к нему интерес.
Привлекло меня в этом лаунчере то, что он позволял превратить домашний экран планшета в информационное табло — тут и rssленты, и twitter, и погода и т. д. Всё смотрится красиво и удобно, а место на экране не расходуется зря (а его на экране всегда мало). Кроме того, он позволял писать свои собственные виджеты на js.
Но создатель потерял интерес к своему творению (в своё время он собирал на него деньги через kickstarter) и сначала виджеты перестали работать (они используют сервер для работы), появились баги, которые не фиксились. В итоге недавно приложение и вовсе было удалено из Play Market.
Постепенно у меня начало появляться желание написать аналогичный лаунчер — приценивался к технологиям, но не хотел связываться с Java. Но в эти выходные я решил попробовать свои силы в написании клона этого лаунчера. В этой заметке я расскажу о текущем состоянии дел. Возможно, кто-то ещё заинтересуется проектом и присоединится к нему.
Основной экран:
Cписок приложений:
Целью было сделать что-то более-менее похожее за минимальное время: для начала без всяких фенечек — анимации, 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.