Android vs iOS: która platforma jest najlepsze dla programistów
Makradar Technologii / / December 19, 2019
Android vs iOS. Wieczny tematem walkach online, który ma już wszystko podnadoest przyzwoicie. Nie spiesz się przekazać tekst artykułu i od razu przejść do wylania swej jedynie słusznej opinii w komentarzach. Dziś będziemy rozmawiać znowu o który system jest lepszy, ale w inny sposób.
Deweloperzy - tych, którzy tworzą zasadniczą część każdej platformie, czyli aplikacji. To jest jakość narzędzi programistycznych, zapewnia platforma zależy od wyniku końcowego. Więc pod jaki system jest lepiej pisać? Odpowiedzieć na to pytanie doświadczonego programistę aplikacji, która miała być oświetlone w App Store i Google Play.
Wybór platformy - podstawowym problemem dla każdego nowego projektu. Android czy iOS? Biorąc pod uwagę najnowsze wiadomości, że Android został pomyślnie przechwycone 80% rynku, wybór staje się jeszcze trudniejsze. To nie ma znaczenia, co menedżerowie i inne niezbyt wiedzę o technicznych aspektach ludzi emisyjnych o tym myśleć. Kolejna rzecz - deweloperzy.
Jaka jest ich opinia? Zaletą tej czy innej platformy jest bezpośrednio zależny od jego zdolności do podejmowania ich życie lepszym.
I „oni” to znaczy „nasz”. Oprócz działań autora w TechCrunch, Zajmuję się HappyFunCorp. Co więcej, nie tak dawno temu, stworzył duet opensorsnyh aplikacji poprzez swój projekt-PET. To właśnie te aplikacje użyć do porównania.
Dla przypomnienia: I wcześniej musiał napisać kilka aplikacji Android i iOS, zarówno dla użytku osobistego i pracy. W szczególności, napisałem klienta mobilnego dla swojej wiadomości agregatora ScanvineKtóry zbiera niezwykle popularne historie z mediów społecznych. Kod źródłowy mojej aplikacji można znaleźć na Github (android | iOS), A same aplikacje są dostępne w Google play i App Store.
Cóż, walka zacząć.
środa
Nadal można napisać kod w edytorze tekstu, a wiele z nich robi tak daleko, ale w kategoriach wydajność jest bardziej przydatna do korzystania z IDE (Integrated Development Environment - IDE).
W przypadku Apple, mamy Xcode i pracę w tym środowisku - przyjemność. Jest elastyczny, szybki, mocny i zdolny do pomocy, bez nadmiernej ingerencji. A ona coraz lepiej, pomimo trudnych i paranoidalne środków podjętych przez Apple, aby zachować pełną kontrolę nad aplikacjami na iOS i urządzeń. Debugger działa płynnie i symulacja - szybkie i elastyczne.
Co o Androidzie? Oh, Android. W tej chwili, rzeczywista środowisko programistyczne pod to Eclipse, garść Androida dostosowany wtyczek, a to nieprzyzwoicie źle. Powolny, niezdarny, nielogiczny, często mówiąc niezrozumiałe, źle zaprojektowane, zbyt skomplikowane - prawdziwy bałagan. Jego debugger jest tak niewygodne, że większość czasu spędzam w majstrować z bali, natomiast z Xcode w moim posiadaniu a rzeczywiste błędy narzędzie-Hunter. Nie zapomnij o emulatorze Androida, który po raz pierwszy trwa kilka minut, aby pobrać, a następnie nie mógł połączyć się z ADB.
Aby być sprawiedliwym powiedzieć, że Google wie o tym problemie i pracują nad nowym Android Studio IDE:
Obecnie Android Studio jest dostępne jako wczesny podgląd. Niektóre funkcje nie mogą utworzyć, lub nie są realizowane, co może powodować błędy. Jeśli użycie niedokończonego produktu jest przyczyną dyskomfortu, a następnie można pobrać i nadal korzystać z ADT Bundle (Eclipse plugin z ADT).
Miło widzieć, że pracują nad tym problemem, ale wciąż zaskakując - po 4 i pół roku po zakupie mój Pierwszy Android podobny bałagan nadal jest limit doskonałości, która była w stanie osiągnąć środowisko programistyczne Android.
Tu bije iOS, bezwarunkowo.
Konfiguracja
Pod płaszczykiem Xcode i Objective-C są ukryte okropności Lovecrafta z epoki siedemdziesiątych programowania. Żartuję, żartuję... ale jednak. Makra i nagłówek pliki, projekty, cele, program i montaż konfiguracyjne i przerażające przerażający lista parametrów montażowych. i więcej niesamowite odkrycia w stylu „Oh, kod innych firm nie obsługuje ARC? Wystarczy dodać flagę -fno-objc łukowego ». Wystarczy? Nie!
W Androidzie masz plik manifestu, a Eclipse są zazwyczaj całkowicie odbudowuje aplikacja za każdym razem, aby zachować plik. Chciałbym większą jasność, kiedy, na przykład, pojawia się komunikat o błędzie, ze względu na fakt, że prawidłowo skonfigurować regułę, ale jest to wada niewielkie. Konfigurowanie aplikacji Android jest prosty i elegancki.
Tu bije Android.
projektowania interfejsu
Wydaje się, że Apple jest zdecydowanie zwyciężyć. Z ich projektanta można łatwo i szybko zbudować prosty i ładny wygląd interfejsu. Problemem jest to, że im dłużej pracował z projektantem, tym mniej mi się podobało. To kolejny raz, kiedy otworzysz złożoność konfiguracji - narzędzie jest idealne do tworzenia prostych rzeczy, ale wraz z rozwojem Zastosowanie prostych rzeczy, nagle stają się skomplikowane, a ja naprawdę nie lubię tych wieloekranowych storyboardy, które Jabłko dodane około rok temu.
Na Androidzie teoria jest porównywalne narzędzia wizualizacyjne, ale w praktyce piszesz pliki XMLRysunek zawierający instrukcje, że w pewnym przewodami szczęście poprawnego wyświetlania aplikacji na wszystkich różnych formatach ekranach urządzeń z systemem Android. Jabłko porusza ten sam sposób, a ich Układ automatycznego wyraźnie zaostrzony dla zmian rozszerzających przyszłość ekranów na urządzeniach z iOS.
Jednocześnie, Android daje deweloperom zestawy ikonNatomiast deweloperom iOS są zmuszeni zwrócić się do usługi obceLub rysować własne ikony.
W tej rundzie zwycięzca wybrać trudniejsze, ale dam iOS preferencję dla dwóch powodów. Po pierwsze, jest nadal wiele łatwiej - zaledwie 3 Przekątna (w tym IPAD), a współczynnik kształtu Format 2. Android zróżnicowanie w tym zakresie zwiększa złożoność. Drugi punkt jest odwołanie domyślnie elementów wizualnych (menu pop-up, wiadomości i tak dalej). W iOS to wszystko wygląda o wiele bardziej atrakcyjne.
Tu bije iOS.
język
Aplikacje Android są napisane w języku Java, iOS - na Objective-C. Istnieją wyjątki lubią XamarinAle w większości przypadków taki podział jest ważny.
Nauczyłem się pisać w języku Java, a szczególnie na początku nie myślałem o Objective-C, w dużej mierze ze względu na jego dużą objętość.
Ciąg jak:
Ciąg s2 = s1.replace ( "abc", "xyz");
Zwraca się do niego w:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Ale w procesie odkrywania języka bardzo lubiłem. On jest lepszy i czystszy niż Java.
W tym przypadku również są plusy Java. Na przykład, proste pułapki i śledzenia błędów. W ciągu ostatnich kilku lat, Android jest kolejnym bardzo istotna zaleta w zakresie zbierania odpadów, to znaczy, automatyczne oczyszczanie pamięci ze zbędnych przedmiotów, ale teraz iOS wie to samo, i to rzeczywiście korzyść do niczego. Biorąc pod uwagę fakt, że ostatnie zwycięstwo idzie do iOS tutaj.
Tu bije iOS.
API
W Android i iOS mają ogromną bibliotekę oprogramowania dostępnego dla programistów, i ogólnie rzecz biorąc, są one dość podobne: API Działanie funkcji telefonicznych i komunikacji, API dostępu do sieci, w arsenale widzów, w tym potężny WebView - praktycznie klonem pełny Przeglądarka.
Większość prac jest wykonywana ze sterownikami i ogólne iOS ViewController jest odpowiednikiem aktywności Android.
Które naprawdę nie mają Android, ponieważ jest to w pełni analogowy ramy Rdzeń danych. Na cały system jest czystsze i lepiej zaprojektowane. Na przykład, po prostu porównać tedwa klasa w iOS, które wykonują większość pracy w aplikacji, z tetrzyrównoważny zajęcia w Androidzie. W końcu, wolę pracować z iOS CollectionViewControllerNiż z Androidem ListAdapter.
Innym ważnym metryczny: liczba linii kodu. Moja wersja aplikacji dla obu platform są praktycznie identyczne pod względem cech i funkcji, ale w iOS je realizować Zajęło mi 1596 linii kodu, w tym pliki nagłówka, oraz stworzenie systemu Android w wersji z takimi samymi funkcjami wymaganymi 2109 wierszy. Różnica wynosi 32%.
Tu bije iOS.
Internet
Obecnie zdecydowana większość wniosków jest więcej prowadnice do Internetu, zamiast programów autonomicznych. Jest to bardzo ważny punkt, a powinien on być rozpatrywany oddzielnie. W arsenale obu systemów posiada szereg narzędzi i API dla realizacji współpracy z siecią. Również obie platformy wdrożenia praktycznie pełnoprawnym przeglądarkę, która może być wbudowany w aplikacji jak chcesz i gdziekolwiek jesteś.
Połączenia muszą działać w tle i nie przeszkadza w samej aplikacji. Aby zaimplementować wielowątkowości w Androidzie używany AsyncTask. To działa bardzo dobrze i pozwala na łatwe ustalaćCzy użytkownik jest w sieci w tej chwili. iOS oferuje podobne możliwości, ale są one realizowane na stosunkowo niskim poziomie i nie spełniają potrzeb deweloperów.
Jednakże, istnieje wiele bibliotek innych firm, open source, i sprawiają, że życie o wiele łatwiejsze. Kiedyś AFNetworking, i to działa tak dobrze, jak to jest określone w ogłoszeniu.
Tu bije domyślny Android i iOS przy użyciu bibliotek innych firm.
udostępnianie
Jak łatwo współdzielić dowolnego konkretnego zastosowania w Facebook, Twitter, Evernote i innych usług? Wydaje się, że to będzie pierwsza runda, w której Android wygra 100% nokaut: ma potężny system interakcji między aplikacjami zwanych Intents iw ogóle, Android jest znacznie bardziej lojalni wobec wniosku oraz transmisja danych między aplikacje.
W ogóle, Apple dogoniła znacznie konkurenta możliwości sharinga. Nie możesz uwierzyć mi na słowo, sprawdź kod funkcji „Share” w historię na Scanvine android i iOS. Jedynym powodem, dla którego kod iOS więcej - obecność w nim bardziej elastycznego śledzenia Google Analytics, zamiast w Androidzie.
Następnie wyciągnąć.
podział
Wtedy nie trzeba mówić wiele. Jednak Google stara się wykorzystać ciekawe strategii defragmentacjiTak że w krótkim czasie pozycja zostanie ponownie zbadana.
Tu bije iOS.
Publikacja wniosku
Publikacja aplikacji Android jest bardzo prosta. Narzędzie w Eclipse pozwala szybko zbudować aplikację, a w twoich rękach już plik apk. Przedkłada go do wiadomości e-mail, pisać w trybie online lub do pobrania w Google Play, dzięki czemu jest dostępny w całej (prawie) na świecie w ciągu zaledwie jednej godziny. Wtedy staje się możliwe, aby monitorować statystyki instalacji oraz awaryjnie zgłasza się do określonej linii kodu, dzięki czemu aplikacja wywala. Jeśli to konieczne, można zaktualizować do rozwałkować natychmiast.
Publikacja w App Store - to koszmar. Mój przyjaciel radzi przeznaczyć na rozwój kalendarzu co najmniej jeden dzień na wojnie z certyfikatów i profili dystrybucyjnych. Bez względu na to, ile razy już to robiłem i ile łatwiej stara się uczynić proces kolejnej wersji Xcode - nadal będzie wiele problemów. testowanie aplikacji staje się jeszcze większym problemem, chyba że używasz TestFlight. Dodaj do tego iTunes Connect, który nie udać się do dowolnego porównaniu z konsoli programisty Google Play.
Tu bije Android, bezwarunkowo.
zwycięzca
Staje iOS zresztą z pewnym marginesem. Mamy zalety Androida, ale w ogóle pisać aplikacja dobre dla iOS jest nadal o wiele łatwiejsze niż w Androidzie. Dodaj do tego fakt, że użytkownicy iOS ponad wypłacalności, a otrzymasz odpowiedź na pytanie, którego platforma powinna być priorytetem na starcie. Prawdopodobnie różnica zostanie zmniejszona po wydaniu Androida Studio, umożliwiając w ten sposób, aby rozwiązać pewne problemy... ale nie wszystkie.
Nawiasem mówiąc, mój główny telefon - Nexus 4, i jestem bardzo zadowolony.
(przez)