co powinien wiedzieć / adres deweloper powinien tworzyć komercyjne aplikacje na Androida? [Zamknięte]


21

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ł?


Przez reklamę rozumiesz „jakość handlową” lub „zarabianie pieniędzy”, a jeśli później masz na myśli znalezienie pracy w okolicy lub pisanie i sprzedaż aplikacji dla siebie?
Jon Hopkins

@Jon. Nie wykluczając żadnego z tych obszarów. Ale (tak myślę) istnieje wielu programistów takich jak ja, którzy chcą skutecznie rozszerzyć swoją obecną organizację na urządzenia. Tak więc to tak naprawdę nie wymaga „zarabiania pieniędzy” lub znalezienia nowej pracy, po prostu rozszerzenie przedsiębiorstwa o żądnych informacji menedżerów / wojowników drogowych.
złyITguy,

To, czego szukam, to porady od starszych programistów Androida, którzy mają „och! Powinieneś najpierw przeczytać to, a potem to dla HTTP, lub to dla atrakcyjnego projektu interfejsu i to dla rysowania 2D / 3D ...”. Zaktualizowałem moje pytanie, aby to odzwierciedlić.
angryITguy,

Odpowiedzi:


16

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”.

  1. 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.

  2. 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:

  1. SQLite

  2. Ogólne pojęcia dotyczące przesyłania strumieniowego audio i wideo, kodeków. Dla OpenCore (android.media).

  3. Rysunek OpenGL.

  4. Usługi sieciowe oparte na REST, XML lub JSON.

  5. 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 ;-).

  1. naucz swoje dziecko rysować i czytać.

  2. słówek do nauki języków obcych.

  3. Przewodnik telewizyjny FreeSat dla Wielkiej Brytanii + pilot zdalnego sterowania.

  4. twoje tutaj (przepisy kulinarne ... itp.).


Podoba mi się twoja odpowiedź, czy możesz podać linki, których użyłeś do SQLLite, Webservices / REST / JSON i OpenGL?
angryITguy,

12

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


cześć, przepraszam, jeśli to głupie, ale jestem tu nowy! Dlaczego miałoby to zostać odrzucone? Powodem, dla którego pytam, jest to, że nie zauważyłem, że nikt inny nie odpowiedział na to pytanie, a czasami (tak mi się wydaje) po prostu musisz odejść i samemu znaleźć odpowiedź. To wszystko zasugerowałem kilkoma podstawowymi punktami początkowymi, więc co z tym nie tak?

+1, aby przeciwdziałać negatywowi. Plus daje dobre linki :)
Darren Young

@Darren Young - dzięki, ale byłem tylko zainteresowany, dlaczego może zostać odrzucony. Mogę więc lepiej korzystać z witryny, ale +1 jest zawsze mile widziane!

@Koparka. Dzięki za te informacje. To jest poziom podstawowy, który udało mi się już znaleźć. Miałem nadzieję, że bardziej zaawansowani programiści / skoczą i posuną tę odpowiedź nieco dalej. +1
złyITguy

@giulio - dzięki, mam nadzieję, że znajdziesz informacje, których szukasz.


3

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.


Dzięki, patrzyliśmy na Titanium. Zaktualizowałem pytanie, aby pomóc respondentowi w tym, czego szukam w odpowiedzi.
złyITguy

2

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).

  1. 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.

  2. 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.

  3. 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.


ciekawe ... czy możesz podać jakieś odniesienia do stron, które dotyczą tych tematów?
złyITguy

1

Trenowałem moich juniorów w tym manierze.

Krok 1: Proszę, aby zobaczyli darmową aplikację w Android Market, a także wersje demonstracyjne API, ponieważ mogą też zdobyć kilka pomysłów. ( Http://developer.android.com/resources/samples/ApiDemos/index.html ) a także http://www.androidpeople.com/

Na przykład: aplikacja IBNLive na Androida Ponieważ widząc tę ​​aplikację, mogą z grubsza zorientować się, że są to rzeczy możliwe, dlaczego nie możemy cerować / używać, projektować, kontrolować lub funkcjonować w ten sposób.

Krok 2: Po uzyskaniu Nadziei, widząc istniejącą aplikację, mogą wyszukiwać w Google, a także w Przewodniku dla programistów Androida, który działa jak Biblia dla Androida, i poznali się.

Na przykład: My Juniors wpadli na pomysł: rozwijanego widoku listy i powiadomień wypychanych, następnie przeszukali, w jaki sposób możemy to zrobić, a potem znaleźli powiadomienie wypychane, możemy użyć Cloud Device Device Messaging, a następnie przestudiowali to i zrobili to w doskonały sposób.


0

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.