Artykuł jest wprowadzeniem do tematyki pisania aplikacji na platformę Android. Jest bardziej zbiorem narzędzi, drogowskazem na początek niż konkretnym tutorialem. Odpowiednim zarówno dla osób, które nie mają w ogóle doświadczenia z programowaniem, jak i programistów Javy, którzy chcieliby spróbować swoich sił z Android’em.

Jest to zarazem pierwszy artykuł w kategorii „Programowanie”. Tematyce, której docelowo nie planowałam na tym blogu, a powstała w odpowiedzi na Wasze zainteresowanie. I zależnie od tego zainteresowania będzie się rozwijać 😉 Choć raczej na podstawowym poziomie. Coś co może być przydatne dla każdego, typu: „dlaczego tło mi miga” czy też „dlaczego obrazek się nie wyświetla”, a od czasu do czasu cięższy temat (taki jak dzisiaj).

Samo programowanie jest zbyt szerokim tematem, by rozwijać go pobocznie na blogu. Mogę za to się podzielić swoim doświadczeniem odnośnie tego jak i gdzie zacząć, drobnymi tipami, wskazówkami na start.

[Aktualizacja, 3h po publikacji artykułu]: Przygotowałam słownik pojęć, które mogą Wam się przydać podczas czytania tego artykułu. 

Wstęp

Android’a chyba nie muszę przedstawiać 🙂 W dzisiejszych czasach tylko nieliczni nie wiedzą czym jest (tak – zakładam, że mogą istnieć takie osoby 😛).

Android jest naprawdę potężną platformą. Jedno to napisać swoją pierwszą aplikację, ale by być w tym dobrym i pisać bardziej rozbudowane twory przydaje się duże doświadczenie i wiedza. Osobiście mam spore doświadczenie z aplikacjami mobilnymi, ale niekoniecznie z Androidem. Mimo to mam podstawy, którymi mogę się podzielić, jeśli ktoś chce zacząć swoją przygodę z tą platformą. I dlatego zdecydowałam się na napisanie tego artykułu 😉

Będzie to artykuł techniczny, więc żeby nie pozostawać gołosłowną, że wiem o czym piszę (a nie jestem przypadkową osobą, która została wyrwana do odpowiedzi na temat, o którym nic nie wie), odsyłam do mojego portfolio (aktualizacja: sierpień 2015).

Podkreślam, że nie jestem specjalistą od Android’a. Mam na swoim koncie zaledwie kilka aplikacji. Są rejony, gdzie wiem więcej, a są takie, w których sama mam poważne braki. Ale nie będzie to kurs programowania na Android’a tylko raczej porady jak zacząć, gdzie szukać pomocy, etc.

Po tym przydługim wstępie przejdźmy do konkretów.

Android – jak zacząć

Aplikacje na Android’a można pisać na wiele sposobów. Dzisiaj przedstawię chyba nadal najczęściej spotykany (?), czyli Java + Android SDK 🙂

(pierwszym MUST HAVE w przypadku programowania jest znajomość języka angielskiego)

Java

(jeśli znasz podstawy Javy – możesz pominąć tą sekcję)

Wymaganiem wstępnym jest znajomość choćby podstaw Javy. Tutaj osobiście polecałabym bardzo konkretną książkę – „Java. Podstawy” Cay S. Horstmann, Gary Cornell.

W sieci dostępnych jest wiele kursów czy tutoriali. Przykładowe:

* EDX ogólnie polecam jeśli chodzi o kursy programowania i nie tylko 😉

Oczywiście wiem, że w sieci jest jeszcze wiele miejsc wartych polecenia i to tylko krótki przekrój takich źródeł.

W programowaniu ważna jest praktyka, więc ani samo przeczytanie książki ani zapoznanie z milionem tutoriali nic Ci nie da, jeśli nie zaczniesz pisać kodu. A żeby to zrobić – potrzebujesz narzędzi.

Java IDE:

  • Eclipse
  • Netbeans (zasobożerny, więc jeśli masz problem z szybkością działania komputera, lepiej zainstaluj Eclipse’a)
  • IntelliJ IDEA

Wiedza + narzędzia + umiejętność logicznego myślenia + cierpliwość to wszystko czego potrzebujesz na dobry początek. Gdybyś jednak natknął/natknęła się na jakieś problemy, pytania, miejscem, w którym można znaleźć wiele odpowiedzi jest Stackoverflow. To społeczność prawie 5 milionów programistów na całym świecie. Wierz mi, rzadko spotykam się z problemami, które już ktoś kiedyś nie rozwiązał i nie opisał 😉

No i oczywiście zawsze pozostaje Google. Tu z doświadczenia podpowiem: nawet swoje pytania wpisuj po angielsku. Rzadko kiedy znajdziesz odpowiedź na polskich stronach czy blogach.

Jak w nauce wielu innych rzeczy ogromne znaczenie ma praktyka! Po pierwsze pisanie kodu, po drugie analizowanie innych. Tutaj chciałabym polecić Mkyong – jest to świetna baza tutoriali, fragmentów kodu, często z możliwością pobrania działających przykładów.

Zaznaczam, że to, co poruszam to początek góry lodowej. Bo tak naprawdę dobry programista zna nie tylko język programowania i umie „klepać” apki. Przydają się wzorce projektowe, sporo wiedzy matematycznej, znajomość algorytmów. I doświadczenie. Ten sam problem można rozwiązać na wiele sposobów. To doświadczenie pomaga Ci zrobić coś w 5 minut zamiast siedzieć nad tym cały dzień, a w efekcie uzyskać program, którego wykonanie trwa 10 razy dłużej.

Ale od czegoś trzeba zacząć 😉 Doświadczenie przychodzi z czasem.

Tak, jak wspomniałam na początku – wystarczą Ci podstawy Javy, więc nie traktuj tego etapu jako blokady, czegoś nie do przejścia. Zawsze możesz wrócić i doszkolić się w tym temacie, ale po opanowaniu podstaw możesz przejść do dalszej nauki…

 

… Androida

Gdybym miała ponownie się uczyć Android’a zaczęłabym od strony Android Developers. Jest tam sekcja Training for Android Developers, do której sama wyrywkowo nieraz zaglądałam. Znajdziecie tam wszystkie informacje na początek. Ale zanim zaczniecie z nim pracę potrzebujecie narzędzia. Aktualnie oficjalnym IDE dla Android’a jest Android Studio, które możecie pobrać TUTAJ. Dokładny opis instalacji w zależności od platformy znajdziecie na tej stronie.

Ważnym jest zapoznanie się z tzw. cyklem życia aplikacji. Na starcie warto również przeanalizować jak najwięcej Code Samples. Ew. te, które mogą Was interesować pod kątem aplikacji, którą chcecie napisać. Nie da się również programować na Android’a nie zaglądając do Jego API.

Samo czytanie tutoriali, książek nic Wam nie da, jeśli nie zaczniecie wykorzystywać tej wiedzy praktycznie. Proponowałabym określić jakąś prostą aplikację, nawet kalkulatorek i spróbować ją napisać. Aplikacje możecie testować z wykorzystaniem Emulatora. Emuluje on (naśladuje działanie) rzeczywistego urządzenia z Android’em na pokładzie.

Kursy, które wydają się ciekawe pod kątem Android’a*:

Sporą ofertę, jeśli chodzi o kursy Android’a ma również Udacity. Ciekawie wygląda oferta kursu Android Development for Begginers. Niestety jest on płatny…

* Sama Android’a uczyłam się już lata temu z materiałów dostępnych w Internecie. Gdybym miała to robić ponownie skorzystałabym jednak z kursu, dlatego je polecam 😉

 

Podsumowanie

W artykule skupiłam się na konkretach, ale już teraz widzę konieczność napisania kolejnego dla osób, które myślą ogólnie o programowaniu. Spodziewajcie się go już w maju 😉 Macie jakieś pytania w tym temacie?

Ogólnie przyznam, że był to dla mnie ciężki wpis. Inaczej pisze się tutoriale dla programistów (czym się swojego czasu zajmowałam), a inaczej opisuje programowanie dla osób, które dopiero o tym myślą. Jeśli w jakiś sposób Was przeraziłam, zniechęciłam albo opisałam coś w zbyt skomplikowany, niejasny sposób –dajcie znać w komentarzu. Z chęcią rozwinę temat bądź ułatwię.

Jeśli masz doświadczenie z Androidem bądź Javą i chciałbyś się podzielić opinią, jakimiś dobrymi radami również zachęcam do komentowania 🙂 Wszelkie uwagi mile widziane 🙂

 

Aktualnie tematykę programowania rozwijam w ramach mojego drugiego bloga (programistycznego) – NetteCode.

Zapraszam!