Na podstawie pierwotnego tematu użytkownika piotrpo, część rozbudowana, a część obcięta przez użytkownika chaosmedia. Temat powstał by nowi użytkownicy nie musieli się przedzierać przez offtop powstały w temacie pierwotnym. Będzie on stale rozwijany i aktualizowany. Częstotliwość aktualizacji/rozwoju tematu, raz na tydzień.
Offtop w tym dziale jest surowo zabroniony, jeśli nie będzie dotyczył pytań początkujących. Zabroniona jest luźna rozmowa o d... marynie. Każde zaśmiecanie tematu przez bardziej doświadczonych programistów, będzie nagradzane prezentem.
Jak zacząć programować aplikację i gry na system Android.
Czego potrzebuję?
1. Narzędzi
Narzędzia, głównie jest to IDE (Zintegrowane Środowisko Programistyczne), w którym będziesz pisał swoją aplikację i tworzył jej aspekty wizualne. Proszę, nie myl programowania ze składaniem aplikacji z gotowych klocków. Ten błędny pogląd jest surowo potępiany na forum.
Programowanie wymaga znajomości języka, podstawowej wiedzy matematycznej i logicznego myślenia, a także SAMODZIELNEGO rozwiązywania napotkanych problemów.
Androida wspiera tylko parę z wielu IDE, są to Eclipse, Intelij, Netbeans. Od biedy można programować również w notatniku i kompilować używając CMD, jednak jest to nieekonomiczne.
Jedynym IDE wspieranym oficjalnie przez Google jest Eclipse, posiada on także sporą społeczność i większość problemów związanych z programowaniem, przykładów, etc. jest opisana dla tego IDE.
Eclipse ściągniesz z : Eclipse Downloads
Dodatkowym elementem jest SDK android i ADT plugin do Eclipse, instrukcję znajdziesz tutaj:
Building Your First App | Android Developers
Jeśli nie poradzisz sobie z tym elementem, instalacją i konfiguracją IDE. Możesz nie czytać dalej i zrezygnować z programowania.
2. Wiedzy
-znajomość angielskiego (bezwzględnie wymagana, większość materiałów dostępnych w jezyku angielskim, a polskie książki są delikatnie mówiąc, do niczego)
-znajomość podstaw języka Java (nie mylić z JavaScript)
pojęcia takie jak: zmienna, instrukcja warunkowa, metoda, klasa, dziedziczenie, pętla, wątek i składnia języka
-znajomość struktury aplikacji Android
pojęcia takie jak: activity, service, android manifest, widget, wątek, reveiver i metody onCreate, onStart, onResume, onPause, onStop, onDestroy i onRestart
FAQ
1. Czy mogę pisać na androida w językach innych niż Java?
C++ - tak, możesz pisać używając kodu natywnego, jednak bez znajomości Javy się nie obejdzie. Dodatkowo przy tym wymagana jest dobra znajomość linuxa.
C# - nie, nie możesz pisać aplikacji w tym języku, ale narzędzia do tworzenia gier jak Unity3D, zezwala na użycie tego języka w ich środowisku.
HTML5 - nie jest to języka programowania, narzędzia typu PhoneGap pozwalają tworzyć aplikację przy użyciu HTML. Nie są one jednak pozbawione wad funkcjonalnych jak i ce♥♥♥♥e je wyjątkowa niska wydajność. Zapomnij o grach lub bardziej złożonych aplikacjach HTML5
Flex/Action Script - Adobe udostępnia odpowiednie narzędzia do tworzenia aplikacji w tym standardzie przy użyciu języka Action Script. Jest to jednak technologia niewspierana przez Google, jak i Apple przy pisaniu na iOS. Aplikacje wymagają plugina Adobe w systemie, są też słabe wydajnościowo.
Inne języki - nie możesz tworzyć w innych językach, oczywiście są nieliczne narzędzia pozwalające na takie działania, jednak są mało wydajne i nie pozwalają na dostęp do wielu funkcji systemu i hardware urządzenia. Tak samo jak HTML5 i Action Script
2. Czy mogę sprzedawać swoje aplikacje w Google Play
Oczywiście, ta funkcja jest dostępna dla Polaków. Pamiętaj jednak, że zgodnie z regulaminem Google Play, ustalającym strony sprzedaży między użytkownika, a programistę, WYMAGANE jest posiadanie Działalności Gospodarczej. Więcej w drugim temacie przyklejonym na temat Działalności Gospodarczej. Sprzedaż wymaga również prowadzenia ewidencji sprzedaży.
3. Czy mogę publikować swoje aplikacje?
Tak, koszt konta developerskiego to $25, płatne tylko kartą debetową/kredytową. Nie ma dostępnych metod kupna za pomocą przelewu czy SMS. Jednak by publikować aplikacje płatne, musisz przejść weryfikację konta bankowego przez założenie Google Checkout dla programistów i wypełnienie instrukcji.
4. Czy mogę umieścić reklamę w swojej aplikacji?
Tak, dostępnych jest kilkadziesiąt sieci reklamowych, wyróżniamy sieci typowo banerowe z nieinwazyjnymi formami reklamy: admob, inmobi, mobfox, mobclix(oszuści, nie ufać im), revmob, applovin + kilkanaście mniej znanych. Są też sieci z inwazyjnymi formami reklamy: airpush(notyfikacje), leadbolt(notyfikacje), senddroid(notyfikacje), startapp(zmiany w zakładkach w przeglądarce, edycja strony startowej).
Typy reklamy:
CPM - cost peer mile (koszt za 1000 wyświetleń banera) - większość sieci reklamowych
CPC - koszt za kliknięcie w reklamę, większość sieci reklamowych
CPA - koszt za akcje usera, np. instalacje programu lub gry, niewiele sieci reklamowych, Applovin(częściowo), Leadbolt(częściowo), MundoMedia, Deluxe Ads, MobPartner, CPATank. Oprócz Applovin i Leadbolta żadna z sieci nie zawiera własnego SDK, a reklamy obsługujemy manualnie lub za pomocą własnych systemów.
Incentvisited - user za skorzystanie z reklamy dostaje nagrodę jak waluta w grze lub przedmioty, sieci to TapJoy, TapIt i kilka innych
5. Czy polecacie jakieś książki / źródła dotyczące programowania?
Nauka Java - "Java 2 Podstawy", "Thinking in Java", "Head First: Java"
Dokumentacja android SDK + wskazówki dla developerów - Android Developers
Przykładowe projekty instalowane z SDK. ~\android-sdk-windows\samples\...
Książki dostępne tutaj: CommonsWare(roczna subskrypcja uaktualnień to $40)
Po polsku ukazała się jedna książka Android 2 Tworzenie aplikacji Książka "Android 2. Tworzenie aplikacji" - Sayed Hashimi, Satya Komatineni, Dave MacLean - 9788324627547 -- Wydawnictwo Helion, księgarnia helion.pl jakoś bardzo jej nie polecamy, ale nic innego w ojczystym języku nie znajdziesz.
Odpowiedzi na sporo pytań znajdziesz tutaj: Stack Overflow