Rozwój Androida i urządzeń mobilnych to ekscytujący obszar rozwoju. Ponieważ jest to nowa dyscyplina, czego można oczekiwać od programisty Androida, który będzie budował solidne aplikacje pod względem umiejętności? Problem, który ja i, jak sądzę, wielu innych „noobów” związanych z technologią chciałbym wiedzieć, to obszary umiejętności technicznych i postęp w wymaganych zaawansowanych tematach, które wykraczają poza same podstawy podane przez Google. Istnieje wiele informacji, które są dość przydatne, ale nie są podzielone na kategorie dyscypliny ani porządku.
Aktualizacja : spójrz na to w ten sposób. Jeśli jesteś starszym programistą i chciałeś przyspieszyć współpracę z Androidem dla konkretnego projektu (według własnego uznania w przypadku tego pytania), co byś zrobił?
Odpowiedzi:
Istnieje kilka aspektów tego pytania:
Z technicznego punktu widzenia odpowiedź na pytanie „Jak?”
Istnieje kilka technologii do opanowania, a także szereg „przyjemnych do posiadania”.
Numer jeden to Java . Android SDK opiera się na założeniu, że wszystkie aplikacje są napisane w Javie . Chociaż zapewne istnieją pewne rozwijające się rozwiązania innych firm do rozwoju w .net (patrz monodroid ), w końcu podstawowym systemem operacyjnym jest Linux.
Drugi to zaćmienie . Chociaż istnieje wiele zewnętrznych zestawów SDK, niektóre lepsze niż ADT, na Intellij lub Netbeans , wysiłki Google oficjalnie koncentrują się tylko na zaćmieniu.
Edycja: od stycznia 2016 Google oficjalnie wspiera Android Studio jako oficjalne IDE.
W architekturze Androida istnieje wiele elementów składowych, dla których zawsze pomocne będzie trochę ekspozycji:
SQLite
Ogólne pojęcia dotyczące przesyłania strumieniowego audio i wideo, kodeków. Dla OpenCore (android.media).
Rysunek OpenGL.
Usługi sieciowe oparte na REST, XML lub JSON.
Pojęcia dotyczące architektury ARM do programowania w języku Native Code.
Ponadto, czytając w mojej kryształowej misce, programiści Androida powinni również znać swój system Linux i biegle posługiwać się językami ojczystymi w dniu, w którym Google porzuca Javę i zastępuje go go lub innymi rzeczami, które gdzieś warzeli (patrz ich inicjatywa „ Native Client ”) w domenie przeglądarki). Google wydało już NDK (Native Development Kit) dla C i C ++, używając standardowego mechanizmu JNI jako uzupełnienia Dalvik.
Z komercyjnego punktu widzenia udzielenie odpowiedzi na pytanie „Co?”.
Programiści Androida powinni oczywiście być użytkownikami Androida. Jednak nie tylko zwykli użytkownicy telefonów komórkowych, ale także użytkownicy tabletów. Powinni faktycznie przyjąć postawę robotniczą - zawsze zadając sobie pytanie: „Jak mógłbym to zrobić lepiej z moim telefonem, tabletem lub innym urządzeniem elektroniki konsumenckiej, którego jeszcze nie ma na rynku?”.
Istnieje wiele aplikacji na Androida, które nie mają jeszcze lidera na rynku, niekoniecznie związane z mobilnością (lub zwykłą nudną aplikacją „gdzie jest najbliższa pizza?”). Oto kilka, których nie mogę osobiście wyrzucić z głowy (dopóki nie będę miał więcej czasu ;-).
naucz swoje dziecko rysować i czytać.
słówek do nauki języków obcych.
Przewodnik telewizyjny FreeSat dla Wielkiej Brytanii + pilot zdalnego sterowania.
twoje tutaj (przepisy kulinarne ... itp.).
źródło
Szczerze mówiąc, myślę, że wystarczy Google i przeprowadzić badania.
Oto kilka interesujących linków, które znalazłem, które mogą być dobrym punktem wyjścia.
Oprócz omawianej dokumentacji Google istnieje wiele innych.
Mam nadzieję, że dzięki temu zaczniesz szukać szczegółowych informacji!
Powodzenia
źródło
Oficjalny przewodnik programisty Google
Rzuciłbym okiem na przewodnik Google dla programistów na Androida, który zawiera najlepsze praktyki i wskazówki dotyczące dostosowania aplikacji do wyglądu aplikacji na Androida.
źródło
Dwie rzeczy, na które bym spojrzał. Jednym z nich są wytyczne projektowe Apple do tworzenia aplikacji. Wiem, że pytanie dotyczyło aplikacji na Androida, ale obowiązują nadrzędne zasady i pozwalają myśleć w sposób „projektowy”, co w rzeczywistości różni się od perspektywy projektowania aplikacji komputerowych.
Rzuciłbym również okiem na Appcelerator Titanium, który pozwala na przenoszenie kodu ze środowiska typu javascript / web dev do kodu natywnego na iPhonie, iPadzie i Androidzie. Uważam, że jest to przydatny sposób szybkiego tworzenia małych aplikacji. Możesz pobrać przykład „Kitchen Sink”, który, jak sama nazwa wskazuje, demonstruje wszystkie dostępne natywne funkcje. Zdecydowanie poleciłbym to jako miejsce na początek.
źródło
Często brakuje mi 3 rzeczy u nowych programistów mobilnych, po podstawowych umiejętnościach w wymaganym języku (językach) programowania oraz znajomości narzędzi i bibliotek SDK (które nie są naukami o rakietach ... podobno 14-latkowie opracowali aplikacje).
Opracowywanie dla ograniczonych środowisk. Procesor, pamięć, piksele wyświetlacza i dostępna moc baterii znacznie bardziej ograniczają urządzenia mobilne. Niektórzy programiści nigdy nie byli narażeni na szybkie i małe programowanie. Po prostu nie możesz myśleć w ten sam sposób, aby rozwiązać problemy, jak w przypadku szafy z 5kW mocy i chłodzenia, itp. Poznaj niektóre sztuczki, które old-timery stosowały do kodowania świetnych gier na procesorze 1MHz z 48kB pamięci lub coś takiego. Może poćwicz kodowanie na Arduino lub innym małym kontrolerze.
Znajomość interfejsu użytkownika. Użytkownik zazwyczaj komunikuje się z urządzeniem mobilnym na różne sposoby niż na komputerach stacjonarnych. Noś jeden ze sobą. Może kilka modeli. Użyj ich. Korzystaj z wielu aplikacji i krytyki (nie funkcji, ale), jak łatwe są w użyciu, przy złym oświetleniu, w odbijających się pojazdach itp. Przeczytaj i ponownie przeczytaj wszystkie mobilne urządzenia HIG. Dowiedz się, co lubią użytkownicy, a co nie na temat konkretnej platformy interfejsu użytkownika, dla której programujesz.
Dziwaczna znajomość. Niektóre narzędzia i biblioteki są nowe i mają „dziwactwa”. Zapoznaj się z tablicami programistów, aby znaleźć informacje o problemach i rozwiązaniach, abyś nie utknął, popełniając ten sam błąd, na który wpadło mnóstwo innych programistów. Widzę zbyt wiele pytań o przepełnieniu stosu o tym, jak robić rzeczy, na które sprzęt, interfejsy API lub modele dystrybucji aplikacji nawet nie pozwalają. Całe firmy marnują czas, próbując zrobić niemożliwe dla iPhone App Store.
źródło
Trenowałem moich juniorów w tym manierze.
źródło
O wiele ważniejsze od technicznych (których można się nauczyć i które i tak nie powinny być zbyt trudne) jest wiedzieć, co robić, dla kogo i czy będziesz w stanie sprzedać wystarczająco dużo. Ta ostatnia część wciąż stanowi pewien problem na Androidzie, w przeciwieństwie do iOS.
Zanim zaczniesz uczyć się programowania na Androida, utwórz jasny obraz tego, co chcesz osiągnąć, jak to osiągnąć i czy jest to rzeczywiście zrównoważone.
źródło