Aktywne Wpisy
Funcfotek +1
ZenujacaDoomerka +11
Codziennie pokazuje mi się te durne wpisy czy kobiety wolą być same w lesie z niedźwiedziem czy mężczyzną i oczywiście wybierają niedźwiedzia. Faceci zawsze w komentarzach się prują, że przecież niedźwiedź zabije, że przecież ich nie interesuje krzywdzenie kobiet itp
I chyba do nich nie dociera, że jeśli oni wiedzą, że nie skrzywdzą to nie o nich chodzi. Chociaż i tak często bywa, że nawet myśląc, że się kogoś nie chce skrzywdzić
I chyba do nich nie dociera, że jeśli oni wiedzą, że nie skrzywdzą to nie o nich chodzi. Chociaż i tak często bywa, że nawet myśląc, że się kogoś nie chce skrzywdzić
Nie uważam się za eksperta, ale siedzę w tym na tyle, żeby jakąś wiedzę przekazać.
Liczę, że odezwą się też inni Androidowcy i dorzucą swoje 3 grosze w komentarzach i wywiążę się z tego jakaś dyskusja.
START
Zacznijmy od IDE oraz Androidowego SDK. Swego czasu najpopularniejszym IDE do programowania w Androidzie był Eclipse z wtyczką ADT (Android Development Tools). Można go pobrać tutaj : https://developer.android.com/sdk/index.html?hl=i . Jeżeli ktoś jest przyzwyczajony do Eclipse, to nie ma przeszkód żeby go używać. Ja osobiście przerzuciłem się na Android Studio i jestem zwolennikiem tego IDE.
Android Studio jest oparty na IntelliJ i jest rozwijany przez Google od ponad roku (od maja 2013 konkretnie). Aktualnie wypuszczona jest wersja 0.8.6 i ciągle jest w fazie beta, ale nie przeszkadza to wygodnie programować na tym IDE. Możecie go pobrać tutaj : https://developer.android.com/sdk/installing/studio.html
Kiedy pobierzecie IDE musicie także pobrać przez SDK Managera wszystkie paczki od Google, całe pobieranie trochę trwa. Ikonkę SDK Managera znajdziecie w IDE w pasku u góry.
PROGRAMOWANIE
Osoby znające Javę mają przewagę już na starcie, dla tych co jej nie znają polecam zacząć od nauki tego języka. Co prawda, istnieje opcja pisania aplikacji na Androida w C++, ale jest to rozwiązanie niepolecane, z uwagi na to, że wbrew pozorom aplikację będą wolniejsze.
Do nauki samego Androida polecam tutorial wypuszczony przez Google : https://developer.android.com/training/index.html
Zdaje sobie sprawę, że nikomu nowemu nie będzie chciało się przebijać przez całą dokumentację zanim zacznie programować na Androida, więc polecam jedynie przeczytanie sekcji "Getting Started" a następnie ustalenie sobie jakiegoś celu (czytaj wymyślenie aplikacji do stworzenia) i zaczęcia programowania.
Nie obędzie się oczywiście bez StackOverflow z uwagi na to, że Android to urządzenie mobilne i jest mniej wyrozumiały niż aplikacje desktopowe. Przygotujcie się więc na częste, niezrozumiałe błędy, o które już setki osób zapytało na Stacku.
KILKA RAD
Po pierwsze, nie bójcie się korzystać z bibliotek na Androida dostępnych w internecie. Jest ich na prawdę mnóstwo i ułatwiają one wprowadzanie upragnionych przez nas ficzerów ( ͡° ͜ʖ ͡°).
Polecam tą aplikację : https://play.google.com/store/apps/details?id=com.desarrollodroide.repos
Pozwoli ona wam na przetestowanie z poziomu komórki poszczególnych bibliotek, bez zbędnego ich ściągania i importowania do waszego IDE.
Po drugie, przy zakładaniu projektu, IDE będzie was pytało jakie checie minimalne API ustalić.
Im starsze API tym mniej funkcjonalności będziecie mieli do dyspozycji i więcej będziecie musieli uzupełniać np. zewnętrznymi bibliotekami.
Swego czasu skupiałem się na API 10+ czyli od Androida 2.3.3, co ciągnęło za sobą potrzebę importowania masy dodatkowych biliotek takich jak np. ActionBarSherlock aby otrzymać funkcjonalności z Androidów 3.0+ i 4.0+.
Aktualnie stare wersje Androida stopniowo wymierają i coraz mniej opłaca się tracić czas na implementację dla API poniżej 15. Możecie sami zobaczyć jaki jest aktualny stan rynkowy wersji Androida : https://developer.android.com/about/dashboards/index.html
Jeżeli jednak chcecie pisać na API poniżej 15, to Google wypuścił specjalną bibliotekę o nazwie AppCompat (od compatibility), która zawiera funkcje z wyższych API, które można zastosować np. w API 10.
Ciekawostka : Czytałem, że czasami opłaca się używać AppCompat nawet w starszych wersjach bo ponoć jest bardziej przetestowana i stabilniejsza. Niestety nie jestem w stanie podać żadnego źródła.
CZY WARTO?
Moim zdaniem, zdecydowanie tak. Rynek mobilny rośnie naprawdę szybko i jest to część IT, w którą warto zainwestować czas. Oprócz tego Android to nie tylko telefony, ale też rozwijające się ostatnio zegarki z Androidem, tablety, telewizory a w przyszłości też i samochody. Na głównej stronie (na dole) możecie zobaczyć o co chodzi https://developer.android.com/index.html
Oczywiście, na Androidzie można też zarobić jako samodzielny developer, w Google znajdziecie sporo ludzi, którzy dzielą się swoimi dochodami z reklam w aplikacjach.
Jako ciekawostkę (historyczną niemalże) podam, że gdy Android i ogólnie smartphony dopiero się rozwijały, a sam market aplikacji dopiero raczkował. Wśród użytkowników pierwszych smartfonów królowały raczej mało funkcjonalne aplikacje typu widget do baterii w kształcie piwa, aplikacja, która wydaje dźwięki pierdzenia (nie żartuje, spójrzcie na ilość sciągnięć https://play.google.com/store/apps/details?id=com.kauf.soundboard.baum.FartSoundBoard ) itd. Można było wtedy bardzo łatwo zarobić na reklamach, często bardzo agresywnych (typu reklama w notyfikacji itp.). Jednak pewnego dnia Google zrobił wielkie czystki, powyrzucał śmieciowe aplikacje i zmienił system reklamowania nowych apek, przez co produkowanie pierdołowatych apek stało się mniej opłacalne.
Nie twierdzę, że teraz użytkownicy nie ściągają takich aplikacji, ale system promowania nie pozwala już tak dużo na nich zarobić.
DODATEK PO EDYCJI
Jeszcze chciałem wspomnieć o różnicach pomiędzy programowanie na iOS a Androida. iOS ma tą zaletę, że jest tylko jeden telefon, do którego musimy dostosować rozdzielczość, komponenty aplikacji i całą resztę. Dzięki temu też aplikacje na iOS są lepiej przetestowane i czasami pewnie i szybsze. W Androidzie niestety mamy tysiące różnych urządzeń, tysiące różnych ekranów i różne API, co dodatkowo utrudnia całą sprawę.
Liczę na wasze komentarze i jakąś owocną dyskusję.
Jeśli gdzieś popełniłem błąd, dajcie znać.
#programowanie #android #mdfkandroiddev #androiddev
@mdfk: jakieś źródło co do gorszej wydajności?
Ja na przykład, używam C++ aby mieć jeden kod do wersji desktopowej, webowej no i androidowej.
Druga sprawa, że zawsze można napisać funkcję w C++, która działa wolniej niż ta zoptymalizowana w Javie.
@mdfk: Czo ja czytam :)
- nie do końca jest tak, że jedno API i już. Są spore różnice między np. iOS7 i iOS8, i jeżeli chce się wspierać obydwa systemy, problem jest podobny, chociaż rzeczywiście skala jest o wiele wiele mniejsza
- jeśli chodzi o różne wielkości ekranu - to też nie do końca jest tak - na przykład iPhony różnią się wysokością ekranu (4s i
Android Course
Kilka rzeczy jest przestarzałych, ale dobrze wchodzi wiedza, a to co jest przestarzałe i depricated można na bieżąco sprawdzać w IDE.