HTML5 Android Cordova

Преди няколко седмици се включих в курс по програмиране на HTML5 за Android, който се води от моя приятел Леон Анави.

В курса се запознаваме с технология, за която бях чувал, но не бях пробвал – хибридни приложения за мобилни устройства.

Хибридни приложения

Хибридните приложения са уеб приложения, написани на HTML, CSS, JavaScript, които се изпълняват на мобилно устройство. Мобилните платформи не позволяват директно използване на HTML, CSS, JavaScript за да си направите приложение. Затова се прави следния трик:

  1. Пишете си приложението на HTML, CSS, JavaScript, така, както бихте го писали да се изпълнява в web browser – Google Chrome, FireFox, Internet Explorer.
  2. Когато дойде време да качите приложението на мобилно устройство, то се пакетира с Web Browser control. Реално, мобилното ви приложение е един Web Browser, като този browser изпълнява вашия HTML, CSS, JavaScript код, които са включени в пакета на приложението.
  3. Потребителя на приложението не забелязва, че това е уеб приложение. За него то изглежда като нормално приложение за мобилното устройство.

Архитектурно така изглеждат нещата:
cordova-phonegap-encryption

Предимства

Идеята е добра и има следните предимства (нa теория):

  • Пишете кода веднъж, ползвате го на много мобилни платформи
  • Лесно за разработване – използват се масовите технологии HTML, CSS, JavaScript
  • Следствие от горното е, че има много уеб програмисти, които няма нужда да се квалифицират за всяка отделна платформа.

Недостатъци

  • Светът на мобилните устройства е доста разнообразен. Оказва се, че Web Browser Control-а, който се използва на всяка платформа, се доставя от самата платформа. А всяка платформа реализира по различен начин HTML5 стандарта.
  • JavaScript, който изпълнявате в Web Browser Control-а има ограничен достъп до устройството. За достъп до неща като: камера, GSP, Accelerometer се използват специални плъгини. Не е сигурно дали тези плъгини работят еднакво на всички платформи.
  • Следствие от горното е, че ако искате приложението да върви на много устройства, все пак ще трябва да се съобразите с различните особености и да напишете съответния код.
  • Езикът за програмиране е JavaScript. Това не е език, на който можете лесно да напишете сложно приложение. За малки и сравнително прости проекти – върши перфектна работа. Но ако искате нещо по-сложно е трудно проекта да се направи и след това поддържа.
  • Следствие от горното е, че приложението може да работи много бавно и да консумира много ресурси на устройството.

Знаех за горните предимства и недостатъци и принципно как работи идеята. Но не знаех на практика как се случват нещата.

Разглеждаме платформата Apache Cordova, като се фокусираме на приложения за Android.

Първи впечатления

  1. Сравнително лесно за инсталиране на платформата за разработване
  2. Широка поддръжка на платформи на които да разработвате приложенията – Windows, Mac, Linux
  3. Широка поддръжка на платформи за които да правите приложения – Android, iOS, Windows Phone, Windows desktop, Ubuntu, Mac OS X, Balckberry и други
  4. Добра документация
  5. Сравнително лесно се пише приложение

Освен това открих, че има много приложения направени на Apache Cordova (PhoneGap е комерсиалната версия на Apache Cordova), което показва, че платформата е популярна.

Инсталиране на Apache Cordova

Оказа се, че хората са се потрудили и инсталацията на Apache Cordova е лесна. Много бързо, без особени затруднения се стига до създаването на “Hello World” проект, който после лесно се модифицира според вашите нужди.

В Интернет е пълно с ръководства, как да се инсталира, но ще го напиша тук за да ми напомня на мен как се прави 🙂

Инсталирате:

  1. Android Studio – няма да го използвате да пишете кода, но то ще инсталира Android SDK, което ви трябва за да правите приложение на Cordova за Android
  2. Node.js – с него се инсталират следващите компоненти
  3. Cordova

    npm install -g cordova

  4. Ripple – емулатор с който можете да пускате приложенията в web browser. Така лесно се дебъгват и тестват.

    npm install -g ripple-emulator

  5. Създаване на Cordova проект

    cordova create project-folder com.yourname.project-name Project-Name

  6. Добавяне на Android като платформа към проекта

    cd project-folder
    cordova platform add android

Това е. Сега взимате любимия си текстов редактор и започвате работа.

 

ПС: Леоне, благодаря за курса 🙂

Мобилни приложения, които комуникират

Тукс – символът на безплатния софтуер с отворен код

Знате ли кой е Тукс (Tux) ? Това е пингвинът, който е официален символ на Линукс – безплатната операционна система, която е и с отворен код. Пингвинът се е превърнал в символ на всички безплатни и с отворен код софтуерни приложения.

Тази събота и неделя имахме конференция TuxCon посветена на безплатния и с отворен код софтуер за мобилни, вградени и устройства за обличане. Лектори, специалисти в различни области споделиха опит и визия отностно технологиите.

Една от лекциите я водих аз, като темата беше “Мобилни приложения, които комуникират”. Споделих опита, който натрупахме при прехода ни от дестоп приложения, към мобилни. Основният ни продукт Бросикс, започна като комуникационно приложение за Windows, после добавихме Mac и Linux – все десктоп операционни системи. Когато решихме да добавим мобилните Android и iOS, срещнахме нов свят, където старите принципи и начини на работа не работят така, както очакваме. По-късно направихме друго мобилно приложение, което комуникира – GuestVista. В тридесетте минути, които ми бяха дадени, се опитах да споделя целия ни опит и да дам насоки в които колегите да работят, когато проектират и изграждат своите мобилни приложения, които комуникират.

Това е видео-запис на презентацията, а тук можете да видите всички презентации от конференцията.

Ето самата презентация в PDF формат.

 

Конференцията беше много интересна с теми, които засягат важни области от света на мобилните и вградените устройства. Запознах се с хора от различни градове на страната, Гърция и Турция, обменихме идеи или просто общувахме. В неделя имахме практическа част, в която участниците имаха възможност да се докоснат до света на вградените устройства. Беше ден посветен на хардуер.

Благодаря на организаторите за перфектната организация и се надявам скоро да има нови издания, които да популяризират добрите практики в разработването на приложения за мобилни устройства, вградени устройства и новите, набиращи популярност устройства за обличане.

Ето снимки от конференцията

Mobile apps that communicate

Tux – the mascot of free and open-source software

Do you know who is Tux? He’s a penguin, who is the official mascot of Linux – the free and open-source operating system. The penguin also became a symbol of all free and open-source software applications.

Last weekend we had a TuxCon conference dedicated to the free and open-source software for mobile, embedded and wearable devices. Speakers that are experts in their areas held presentations in different topics sharing their experience and vision about the technologies.

I was the speaker of one of the presentations. My subject was “Mobile applications that communicate”. I shared the experience we gained while we expanded from desktop to mobile. Our main product Brosix started as a communication application for Windows (desktop-only). Later we added Mac and Linux – all desktop operating systems. When we decided to add mobiles Android and iOS, we reached a new world, where old principles and techniques did not work the way we expected. Later we created another mobile application that communicates – GuestVista. In the time-frame I had, I tried to share all of our experience and to give ideas the audience to consider when they plan and build their mobile applications that communicate.

This is a video-record of the presentation (in Bulgarian language). And here you can see all presentation from the conference.

This is the presentation (in Bulgarian language) in a PDF format.

 

The conference was very interesting. The topics covered important areas from the world of mobile and embedded devices. I’ve met people from different cities across the country, Greece and Turkey. We shared ideas and networked. On Sunday we had a practice. The participants had the opportunity to try real embedded devices. We built the devices and then programmed them. This was a day dedicated to the hardware.

I thank the organizers for the perfect organization and hope soon to have new releases to promote good practices in developing applications for mobile, embedded and wearable devices. The latter gain tremendous popularity recently.

Here are some photos from the conference