Skocz do zawartości
jakubhab

[DLA POCZĄTKUJĄCYCH] Jak zaczac programowac na androida [offtop zabroniony]

    Rekomendowane odpowiedzi

    Nauka w języku polskim dla Polaka zawsze będzie prostsza. Jeżeli nie ma dostępu do polskich publikacji i tak trzeba poszukać innych. Proponuję z pierwszych kilku stron wypisać niezrozumiałe słowa i przetłumaczyć - to powinno wystarczyć do zrozumienia reszty książki (do Androida). Książkę może wyda pracownik uczelni - po uporządkowaniu wykładów, które prowadzi.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Musze napisać aplikację na smartphona. I zastanawiam się w jakim środowisku pisać. Dlatego będę wdzięczny jeśli ktoś

    odpowie na moje pytania.

    Pisząc aplikacje w języku Java to moja aplikacja będzie tylko chodzić pod systemem Android??

    Bo np pisząc w Xamarin(Xamarin - Build cross-platform iOS, Android and Mac apps with C# and .NET) czyli w języku C# aplikacja będzie chodzić jak mówią producenci na systemach Android,Mac,iOS ??Czy to prawda?? Czy ktoś tworzył aplikacje w Xamarin??

    Ponadto jak to jest z Google ?? Czy jeśli chciałbym użyć w swojej aplikacji Google Maps, Google Latitude to pisząc w innym języku niz Java to da się to połączyć?? Api Google jest tylko pod javę?

    I mam jeszce jedno pytanie. Czy są jakieś gotowe darmowe kontrolki np Grid,ImageView ktore można uzyć w swojej aplikacji?? I czy są tez jakies lepsze płatne kontrolki ??

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    szamot

    1. Jeśli chodzi o środowisko to do androida najlepsze jest wspierane przez google eclipse, szczegóły masz w pierwszym poście tego wątku.

    2. Pisząc w javie będzie chodzic nie tylko pod androida, masz zapewne na komputerze różne programy w javie, ale pisząc pod androida da się to głównie uruchamiać na urządzeniach z androidem, są jakieś środowiska pozwalające korzystać z aplikacji na androida w windowsie itp, ale to margines. Poza tym jak pisał gdzieś na forum w podobnym pytaniu piotrpo, pisząc na wiele systemów możesz korzystać tylko z tego co jest n! wszystkich platformach co bardzo ogranicza możliwości programu.

    3. Do niedawna Apple korzystał z map google (rezygnacja z nich niezbyt im wyszła), więc mapy google powinny byc dostepne na innych systemach, ale nie wiem jak jest z licencja, na andku jest free i łatwo dostępne.

    4. Jeśli chodzi o kontrolki itp na androida to jest wszystko czego możesz potrzebować.

    Szukasz tego tu: Android Developers

    Edytowane przez szamot

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    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

    z tego co czytałem, to python (python for android) i kivy pozwala na całkiem sprawne i ładne pisanie aplikacji na andka.

    Kivy on Android — Kivy 1.6.1-dev documentation

    a sam python jest całkiem przyjemnym językiem.

    czy jest to mało wydajne? nie wiem, ale z tego co czytałem to dostęp do całkiem znośnej ilości funkcji systemu i sprzętu jest...

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    skoti

    @up: Python jest językiem skryptowym przez co jego wydajność jest bezdyskusyjnie słaba... w dodatku Python ma dziwną implementacje, która w praktyce pozbawia sens stosowania wielu wątków do przyspieszenia obliczeń, bo w implementacji CPython (którą podane przez Ciebie przykłady wykorzystują), ma globalną blokadę interpretera (działa tylko i wyłącznie jedna instrukcja na raz).

    OFC tragiczna wydajność czasami nie będzie przeszkadzać... możliwości już tak (ogólnie możliwości języków skryptowych na Androidzie to mała część możliwości NDK (C++)... a o możliwościach SDK (Java) zapomnij - czyli Androidowe widgety (jest jakaś mała biblioteczka widgetów, ale z tymi z Androida nie ma nic wspólnego), usługi itp to można pomarzyć).

    Co do już samego Pythona to jaki jest to język to kwestia sporna - moim zdaniem, jest to jeden z najgorszych języków jakie kiedykolwiek powstały.

    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.

    Po pierwsze obejdzie się bez znajomości Javy (mamy NativeActivity przecież) - ofc jeśli będzie się potrzebować specyficznych rzeczy dostępnych tylko w SDK to bez Javy się nie obejdzie (i to działa w obie strony - jeśli chcesz coś z NDK, czego nie ma w SDK to bez C/C++ się nie obejdzie ;p).

    Zastanawia mnie jednak w którym miejscu potrzebna będzie jakakolwiek znajomość linuksa?

    @up

    Przed napisaniem następnego posta w tym dziale przeczytaj zasady.

    Sorry za offtop, ale właśnie nie rozumiem po co ten dział został stworzony? Doświadczeni użytkownicy z ciekawości raz może 2x zaglądną i przez dyskryminację (większe prawa ma pytający niż odpowiadający, zamiast równych) oleją temat - powstanie śmietnik z pytaniami bez odpowiedzi lub z odpowiedziami takimi jakie można by dać najgorszemu wrogowi... Ten dział spowoduje więcej zła niż pożytku.

    Edytowane przez skoti

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo

    Dział powstał po to, że by uniknąć sytuacji, w której ktoś, kto zaczyna i jest świadomy swojej ignorancji, mógł tutaj zadać pytania dotyczące podstaw - jak uważa, że jest zaawansowany - wrzuca do któregoś z działów ogólnych z pełnymi konsekwencjami.

    Jako odpowiadający, czy czytający zwyczajnie nie musisz patrzeć na posty w tym dziale, jednak odpowiadając masz świadomość, że adresatem jest ktoś o niskim poziomie wiedzy.

    Czy jest to pomysł dobry/zły - to się okaże. Inaczej niż "bojem" tego nie sprawdzimy.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    skoti

    @up: nie pamiętam, aby ktoś był karcony za swoją ignorancje jeśli był jej świadomy i chętny do jej zmniejszenia (tak jest zawsze kiedy zadajesz pytanie - nie znasz odpowiedzi więc szukasz info, a jak dalej nie wiesz to pytasz na forum - i to niezależnie od działu). Problem pojawiał się nie kiedy ignorancja była świadoma (dobrze wiesz, że w takiej sytuacji chętnie ludzie odpowiadali nawet na najbardziej banalne pytania), a kiedy była celowa (kiedy napisanie posta trwa dłużej niż wyszukanie wiadomości lub autor brnie w swoją ignorancję, mając za nic odpowiedzi).

    Kończąc offtop: zawsze jestem świadomy, że osoba która się o coś pyta, a ja znam odpowiedź ma niższy poziom wiedzy na ten szczególny temat... to dla nikogo nigdy nie było problemem, bo to jasne.

    Myślę, że nie ma co tematu kontynuować, bo znając życie zdania swoje mieć w tej sprawie dalej będziemy, a tylko się opiszemy bez sensu.

    Pozdrawiam

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Python jest językiem skryptowym przez co jego wydajność jest bezdyskusyjnie słaba... w dodatku Python ma dziwną implementacje, która w praktyce pozbawia sens stosowania wielu wątków do przyspieszenia obliczeń, bo w implementacji CPython (którą podane przez Ciebie przykłady wykorzystują), ma globalną blokadę interpretera (działa tylko i wyłącznie jedna instrukcja na raz).

    aha... czyli pisząc, że:

    Python on Android uses a native CPython build, so its performance and compatibility is very good.

    [https://ep2013.europython.eu/conference/talks/developing-android-apps-completely-in-python]

    ktoś tam jest w głębokim błędzie?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo

    Czytaj "wydajność jak na Python'a".

    Generalnie ładowanie się w takie egzotyczne technologie jest bez sensu. Python jest ok, pod warunkiem, że go już znasz i chcesz się przemęczyć z napisaniem jakiejś prostej aplikacji raz w życiu.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    skoti

    @alek666: Wszystko zależy co ktoś oczekiwał - jak napisałem "OFC tragiczna wydajność czasami nie będzie przeszkadzać" w takich rozwiązaniach nie jest najgorzej, jednak trzeba pamiętać, że Python jest od dziesiątek do tysięcy razy wolniejszy niż C++/Java.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x