Czy MonoTouch jest teraz zbanowany na iPhonie? [Zamknięte]


155

Niedawny post Johna Grubera zauważa, że ​​następujący język prawniczy:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

Został poprawiony w następujący sposób:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

I czyni następującą obserwację:

Czytam o tym nowym języku, że kompilatory krzyżowe, takie jak kompilator Flash-to-iPhone w nadchodzącej wersji Flash Professional CS5 firmy Adobe, są zabronione. Zakazuje to również aplikacji skompilowanych przy użyciu MonoTouch - narzędzia, które kompiluje aplikacje C # i .NET na iPhone'a.

Czy to faktycznie zakazuje używania Monotouch na iPhonie?


4
Zastanawiam się, gdzie legalnie pozostawia to Apple i obecnych programistów monotouch. Co dzieje się z istniejącymi aplikacjami monotouch?
PeteT

2
@ petebob796: Musisz zaakceptować tę nową licencję, jeśli chcesz umieścić coś nowego w iTunes Connect, ale wątpię, czy będą one pobierać ze sklepu rzeczy, które zostały wcześniej przesłane. Jednak mogą / wymusić to w przypadku nowych aplikacji, które nie są oparte na 4.0, ale nie zostały wcześniej przesłane. Ale jak wszystko w App Store, będziemy musieli tylko poczekać i zobaczyć!
Jason Coco

1
Najwyraźniej ta umowa jest objęta NDA
Chris S

apple.com/pr/library/2010/09/09statement.html aaaaaaaaaathankyooooooooooo niech zacznie się szaleństwo!

2
Od 9.09.2010 jest to dyskusyjne. Apple odpoczywa Zasada 3.3.2 foxbusiness.com/markets/2010/09/09/…
Steve Mitcham

Odpowiedzi:


88

Aktualizacja -

Ostatnio się to zmieniło . MonoTouch nie powinien już powodować konfliktu z umową. Wszystkie poniższe stwierdzenia są czysto historyczne!

Tak, teraz wydaje się całkiem jasne, że z umowy licencyjnej wynika, że ​​jeśli oryginalna aplikacja jest napisana w C #, to naruszałoby to licencję:

... Aplikacje muszą być pierwotnie napisane w Objective-C, C, C ++ lub JavaScript, tak jak jest wykonywane przez silnik iPhone OS WebKit ...

Wbijają go nawet trochę dalej:

Aplikacje, które odsyłają do udokumentowanych interfejsów API za pośrednictwem pośredniego tłumaczenia lub warstwy lub narzędzia zgodności, są zabronione

Coś dziwnego, MonoTouch i konwerter Flash CS5 -> iPhone są bardzo fajne.


7
jednak zobacz twitter.com/migueldeicaza/status/11844609073 używając tego, w jaki sposób mogliby odróżnić aplikację MonoTouch od natywnej?
Mauricio Scheffer

9
Apple znowu huh. Wciągające nas za pomocą cudownego urządzenia, czystego interfejsu graficznego, przyjemnego interfejsu dotykowego ... ale ... powstrzymuje nas od tworzenia czegokolwiek dla niego, chyba że mamy Maca, powstrzymuje nas od tworzenia czegokolwiek dla niego, chyba że jest to obiekt C / C / C ++. Chodzi mi o to, co byśmy pomyśleli, gdyby pojawił się Microsoft i powiedział „nie - nie można tworzyć niczego w systemie Windows, chyba że jest w C - nie, nie można już używać frameworka .NET”.
Piotr

33
To nie ma dla mnie sensu. Zgodnie z tą umową, jeśli napisałeś aplikację we Flashu, a następnie ręcznie przetłumaczyłeś ją na Objective-C, wygląda na to, że naruszałoby to umowę (ponieważ nie została „oryginalnie napisana” w Objective-C).
Michael Myers

3
@John: Myślę, że nie chodzi o to, że „zakazują” natywnych aplikacji - bardziej chodzi o to, że API ich nowego systemu operacyjnego obraca się wokół Silverlight / XNA i jest to obsługiwany sposób robienia rzeczy. Nie widziałem niczego, co by wymusiło, że nie możesz napisać Java (ani żadnego innego języka) do kompilatora Silverlight w umowach licencyjnych firmy Microsoft (jeszcze).
Ron Warholic,

3
Dopóki to wszystko się nie wydarzyło, naszym produktem miał być tylko iPhone / iPad (kogo obchodzi Android itp.) Oraz MonoTouch. Teraz ponownie przemyśleliśmy i będziemy teraz Obj-C zgodnie z wymaganiami, ale będziemy również pewni, że w pierwszym dniu będzie dostępna obsługa Androida i WinPhone. Firma nie może sobie pozwolić na niepewność zachowania, dlatego Apple postąpił odwrotnie, niż chciał - zmusił programistów do szukania rozwiązań wieloplatformowych, a nie tylko Apple. Dobra robota.
mj2008

49

Aktualizacja:

Apple zrzucił (prawie) wszystkie wymagania techniczne dotyczące języków i bibliotek dla iOS, więc MonoTouch jest bez wątpienia opłacalnym rozwiązaniem. Zobacz ogłoszenie Apple .


Większość ludzi tutaj po prostu chce wziąć dokument Apple'a za słowo i powiedzieć „tak, to zakazane”. Cóż, oto mój punkt widzenia: w tym momencie nikt tak naprawdę nie ma pojęcia, czy MonoTouch zostanie zbanowany, czy nie, i wyjaśnię dlaczego:

Umowa Apple w wersji 3 (nie najnowsza, poprzednia) wyraźnie stwierdza, że ​​nielegalne jest używanie jakichkolwiek innych frameworków do tworzenia aplikacji innych niż te dostarczone przez Apple:

3.3.2 Aplikacja nie może samodzielnie instalować ani uruchamiać innego kodu wykonywalnego w jakikolwiek sposób, w tym bez ograniczeń poprzez wykorzystanie architektury wtyczek, wywoływanie innych struktur, innych interfejsów API lub w inny sposób. Żaden zinterpretowany kod nie może być pobierany ani używany w aplikacji, z wyjątkiem kodu, który jest interpretowany i uruchamiany przez udokumentowane interfejsy API firmy Apple i wbudowane interpretery. http://adcdownload.apple.com/iphone/iphone_sdk_3.2__final/iphone_sdk_agreement.pdf

Chociaż tak jest (i faktycznie tak było od 2.x, Apple nie ma żadnego problemu z akceptacją aplikacji, które robią dokładnie to). Na przykład WSZYSTKIE gry EA używają skryptów Lua, a wiele osób korzysta z bibliotek zewnętrznych, które nie są natywne dla iPhone'a. Nawet jeśli iPhone ma te natywne interfejsy API, Apple nigdy nie miał problemu z akceptowaniem aplikacji z różnymi wersjami tego, jak SQLite.

Chodzi mi o to, że powiedzenie „TAK, będą zbanowane” w tej chwili jest po prostu WAAY za wcześnie. Jedyną jasną rzeczą w tym momencie jest to, że Apple może w rzeczywistości użyć tego do blokowania aplikacji. Tak jak akceptują dziś aplikacje, które są sprzeczne z niektórymi ich zasadami, prawdopodobnie będą to kontynuować.

Istnieje również fakt, że w sklepie są obecnie setki (lub prawdopodobnie kilka tysięcy?) Aplikacji, w których działa Mono, a Apple będzie musiał akceptować aktualizacje tych aplikacji. Główne aplikacje z milionami sprzedaży zostały stworzone przy użyciu Mono (i Lua) i wątpię, czy zwróciliby pieniądze każdemu użytkownikowi.

Wreszcie aplikacje korporacyjne są wdrażane na iPhone'ach bez zgody Apple, a to jest duży rynek, na którym działa MonoTouch (sam tworzę aplikacje korporacyjne). W tej chwili nie ma możliwości, aby Apple mógł zablokować MonoTouch dla tych aplikacji, a to prawdopodobnie wystarczy, aby utrzymać MonoTouch przy życiu przez długi czas.


Generalnie się z tobą zgadzam, z wyjątkiem ostatniej części - Apple może śmiało powiedzieć, że przyszłe aktualizacje istniejących aplikacji muszą być przeniesione do natywnego Objective-C.
Kendall Helmstetter Gelner

Cóż, nawet jeśli aplikacje są przeportowane do Obj-C, pierwotnie były napisane w innym języku, więc technicznie rzecz biorąc nadal byłyby nielegalne, tak sądzę. Dlatego te zasady nie mają żadnego sensu. Prawdopodobnie wyjaśnią to w kolejnej rewizji, tuż przed ostateczną wersją 4.0.
Eduardo Scoz

3
Poprzedni język w ogóle nie zakazał ram. Wyraźnie powiedział, że zakazał uruchamiania kodu wykonywalnego i wymienia frameworki jako jeden z przykładów sposobu, który można zrobić. Opublikowany język nie ma wpływu na aplikacje monotypowe, aplikacje Flash ani żadne inne prekompilowane pliki binarne, które nie próbują interpretować w czasie wykonywania.
fenomas Kwietnia

27

Aktualizacja:

Nowe zmiany w sekcjach 3.3.1, 3.3.2 i 3.3.9 sprawiły, że MonoTouch (i wszystkie inne kompilatory krzyżowe / języki / itp.) Są całkowicie akceptowalne na iPhonie. Zobacz ogłoszenie Apple


Miguel chyba tak nie myśli. Zobacz tweet i odpowiedź Miguela . Nie przesadzajmy w tym miejscu i nie mówmy, że Monotouch nie żyje, lub przestańmy rozwijać się z Monotouch, dopóki wszystkie zaangażowane strony nie zostaną wyjaśnione.

To powiedziawszy, zdecydowanie zacznę grzać Apple za tak drakońskie polityki rozwojowe. Takie rzeczy i mglisty proces, jakim jest polityka zatwierdzania aplikacji na iPhone / iPad / touch, powinny budzić strach w sercach programistów. Co dalej, ich licencja stwierdzająca, że ​​jedyną platformą reklamową, z której możesz korzystać, jest iAd? Nie zezwalasz na dystrybucję bezpłatnych aplikacji bez iAd? Powoli zwiększasz udział Apple w przychodach ze sprzedaży aplikacji? Jako programiści w zamkniętym ekosystemie, jesteśmy jakby żabami w garnku z gorącą wodą, a Apple powoli podkręca temperaturę. Nadszedł czas, aby zbadać inne platformy mobilne, ponieważ w miarę ich ulepszania najważniejszą rzeczą trzymającą ludzi na platformie Apple jest brak aplikacji na innych platformach.


4
+1 (szczególnie za „odkrywanie innych platform”)
Tim

2
+1, chociaż spodziewałem się więcej po tych linkach. „Nie” nie jest zbyt wymowne, prawda? Mikroblogowanie to plaga.
Dan Rosenstark

Idź eksplorować, trzymam się Apple. Mam 2 komputery Mac i licencję deweloperską, którą z chęcią odnowię w tym roku, aby móc dalej rozwijać. Pokochaj to lub zostaw, ale przestań płakać z tego powodu. I po prostu kup już
Maca

10

Miesiące wieczory spędzałem nad pomysłami na zabójczą aplikację na iPhone'a w Objective C. Na co dzień pracuję w C #. Pobrałem MonoTouch C #, gdy stał się realną alternatywą i właśnie spędziłem 3 miesiące na konwersji mojego kodu do MonoTouch C # specyficznego dla iPhone'a. Co powstrzymało mnie przed szaleństwem podczas przechodzenia z C # / Objective C.

Co mam teraz zrobić, wyrzucić to wszystko i zacząć od nowa lub poddać się!?!

Bardzo mi przykro z powodu facetów z Mono. To jest po prostu błędne. Jedną rzeczą jest powstrzymanie Adobe, które nie wypuściło swojego produktu i nie ma klientów, i powstrzymanie MonoTouch, który to robi i ma również zatwierdzony produkt w AppStore.

Dlaczego ktokolwiek miałby chcieć budować biznes i inwestować w Apple, skoro zabiorą to wszystko w mgnieniu oka, nie odpowiadając ani nie kwestionując?

Najwyraźniej deweloperzy i klienci Apple dbający o nich i ich produkty to droga jednokierunkowa.


Monotouch nie ma zatwierdzonego produktu w sklepie z aplikacjami - w sklepie z aplikacjami jest wiele aplikacji, które zostały napisane przy użyciu Mono. Jest duża różnica polega na tym, że istnieje wiele aplikacji do rozważenia zamiast tylko jednej.
Kendall Helmstetter Gelner

@ Kendall Helmstetter Gelner: Mylisz się. W sklepie z aplikacjami są dostępne aplikacje MonoTouch.
Tim Scott

4
@Tim Scott, on mówi ... och, zapomnij.
Dan Rosenstark

1
Musisz jednak wziąć pod uwagę ilość czasu, jaki firma Adobe poświęciłaby na kompilację swojego iPhone'a. Apple pozwolił im kontynuować tę drogę, wiedząc, że nadchodzi przez ponad rok, iw ostatniej chwili go odebrał. Kosztuje ich miliony czasu rozwoju i utraconej sprzedaży.
PeteT

@Tim: A ile z tych aplikacji zostało opracowanych przez ludzi z Monotouch? Przeczytaj jeszcze raz, co powiedziałem. @yar: Dzięki za próbę wyjaśnienia.
Kendall Helmstetter Gelner

9

Mam nadzieję, że Apple zostanie oszukany za tę absurdalną politykę. Arogancja nie jest atrakcyjna i generalnie zła dla biznesu. To jeden z powodów, dla których nie zacząłem projektowania iPhone'a.

Większość dostawców sprzętu i systemów operacyjnych jest zadowolona z dodatkowych narzędzi i odbiorców do pisania na ich platformie. Apple stoi na stanowisku, że jego (Braindead) narzędzia są jedyną grą w mieście.

Reklama „Big Brother” z 1984 roku jest coraz bardziej aktualna ...

EDYTOWAĆ

Sposób, w jaki jest napisany, wydaje się również sugerować, że jeśli napiszę .net dla obiektywnego tłumacza C / apple, kod nie jest akceptowalny, ponieważ oryginalny kod nie był obiektywny c. To jest śmieszne (i niewykonalne).


2
Jaka jest arogancka część? Myślisz, że robią to, ponieważ uważają, że ich kod jest bardziej przejrzysty, czy coś?
bpapa

3
Mówisz, że to nie jest aroganckie?
Tim

4
@bpapa Arrogance nie ogranicza się do kwestii technicznych - obejmuje również poglądy biznesowe. Są aroganccy, ponieważ myślą, że ujdzie im to na sucho i że jest to dopuszczalne zachowanie. To, że może to być „strategia biznesowa”, nie oznacza, że ​​jesteś zwolniony z bycia nazywanym głupcem i arogancją.
Tim,

3
W rzeczywistości „ujdzie im to na sucho”, ponieważ urządzenia iPhone OS nadal będą odnosić ogromne sukcesy, a programiści będą nadal się rozwijać, a nowi programiści dołączą do grona. Kilka lat temu dokonałem wyboru, mogłem usiąść i narzekać, że nie mogę programować w Javie na iPhonie lub mogę nauczyć się Cocoa Touch i tworzyć aplikacje na iPhone'a. Nie żałuj mojej decyzji.
bpapa

5
@Ben Um, nie - to jest istotne, ponieważ Apple JEST wielkim bratem ... To się nazywa ironia.
Tim

7

Unity również bazuje na Mono, a ponieważ jest to spory produkt komercyjny, wyobrażam sobie, że jest to kwestia, o której jeszcze nie słyszeliśmy.

Banowanie wszystkich aplikacji, które nie są napisane w Obj-C / C ++, teoretycznie zablokowałoby również wszystkie gry Unity, których duża liczba jest już w sklepie z aplikacjami.

To pytanie zostało również zadane w witrynie Unity Answers, a ich oficjalna odpowiedź brzmi:

„Właśnie usłyszeliśmy o iPhone OS 4.0 i nowych Warunkach korzystania z usługi. Chociaż uważamy, że w pełni ich przestrzegamy, robimy teraz wszystko, co w naszej mocy, aby uzyskać weryfikację przez Apple. Gdy tylko będziemy wiedzieć dokładnie, oczywiście podzielimy się tą informacją ze wszystkimi. Proszę, poczekaj chwilę, aż to wyjaśnimy ”.

Ciekawe, co powiedzą im od Apple.

Chodzi o to, że na pewno trzeba napisać aplikację w określonym języku, jest trochę mylące, ponieważ po skompilowaniu aplikacji jest to zawsze natywny plik binarny, niezależnie od tego, jak została zbudowana. Domyślam się, że wszystko, czego mogą szukać, to jakiś rodzaj sygnatury w pliku binarnym, aby wykryć, z jakim narzędziem został zbudowany. Wadliwe podejście.

EDYCJA: Na tym blogu jest ciekawy przegląd sytuacji: monotouch teraz martwy w wodzie, co oznacza jabłka nowa umowa deweloperska iPhone'a


7

Nowa umowa licencyjna jest tego wyraźnie jasna. Więc TAK, zostanie to zbanowane.

Porada, jeśli naprawdę chcesz programować na iPhone'a, wypróbuj XCode. Jeśli znasz już Javę, C # lub jeszcze lepszy C ++, to nauka Objective-C nie będzie taka trudna.

iPhone / iPad to nowy, odnoszący sukcesy biznes firmy Apple i zrobią wszystko, aby ten biznes się rozwijał, może teraz nie zablokują aplikacji Monotouch, ale kto wie, jaki jest następny krok? Więc jeśli naprawdę interesuje Cię tworzenie iPhone'a, zamiast koszmarów, że Twoja praca może zostać odrzucona. Po prostu przejdź na XCode, co najmniej obniży procent odrzuconych aplikacji. Stąd moja rada.


18
Nie chodzi o to, że jest to trudne. Każdy, kto używa monotouch, zna już Objective C.To jest to, że Objective C jest strasznie rozwijany w porównaniu z nowoczesnymi językami.
James Moore,

3
@jamesmoorecode: +1 to okropne
abatishchev

1
Tak, poświęciłem czas na naukę Obj-c i wszystkich interfejsów API Cocoa Touch, więc napisanie natywnej aplikacji tak, jak chce Apple, nie stanowi dla mnie problemu. Po prostu dlaczego miałbym to robić, skoro mógłbym użyć MonoTouch, aby zrobić to znacznie szybciej i udostępnić `` logikę biznesową '' (ale nie interfejs użytkownika) z WP7 i Silverlight dla aplikacji przeglądarkowych i komputerowych?
U62

4
Jest powód, dla którego tak wiele aplikacji w sklepie z aplikacjami regularnie się zawiesza: cel-C. Nawet tak znane, jak digg.com
Chris S,

2
Dziś rano nauczyłem się jeździć pociągiem do pracy - nie jest to trudne - ale śmierdzi - to rozwlekły, archaiczny język - wolę pisać aplikacje na iPhone'a w grafice T-SQL ASCII.

6

Myślę, że coś, co należy mocno rozważyć, to motywacja Apple.

Zgadzam się z innymi opiniami publikowanymi w Internecie, że Apple stara się zapobiegać utowarowieniu aplikacji - to znaczy, że coraz więcej aplikacji pisze się za pomocą frameworków, które generują aplikacje, które mogą działać na wielu urządzeniach.

Ale to nie jest tym, czym jest Monotouch. Monotouch polega na używaniu frameworków Apple do pisania aplikacji - ale za pośrednictwem Mono, a nie Objective-C. Z tego punktu widzenia to, co robi Monotouch, nie powinno naprawdę przeszkadzać Apple.

Nadal uważam, że programistom lepiej jest pisać w języku ojczystym platformy, której używają, ponieważ ogólnie rzecz biorąc, rzeczy są po prostu płynniejsze, gdy nie wprowadza się systemu, który może mieć niedopasowanie impedancji abstrakcji - wszystkie frameworki Cocoa zostały zbudowane do użytku z Objective-C i mają one największy sens, kiedy jesteś przyzwyczajony do filozofii Objective-C. Ale mam nadzieję, że Apple poprze zezwolenie na użycie MonoTouch.


1
Ktokolwiek zlekceważył moją racjonalną analizę, pójdzie do piekła programisty, tylko po to, żeby ci powiedzieć (definicja tego polega na pisaniu aplikacji mobilnych przeznaczonych tylko dla Windows Mobile 6.5 na całą wieczność). Mam na myśli, kłóć się ze mną, ale dlaczego głosowanie przeciw nie ma powodu, dla którego może nie zostać zbanowane? Dlaczego nie spróbować zrozumieć, co robi Apple, zamiast po prostu dołączyć do brygady z widłami i pochodniami, gdy zapali się pierwsza pochodnia?
Kendall Helmstetter Gelner

Uzgodniony Kendal, +1 do równowagi.
si618

+1 Rozsądny argument
Bill

1
+1 dla słabszego i jego odmiennego poglądu. Za każdym razem, gdy występuję przeciwko masom grupy, myślę, że padam głosem, dopóki nie będę zmuszony usunąć postu.
kirk.burleson

5

Apple mówi tylko, że wszyscy musicie teraz używać języków lat 80-tych, aby rozwijać swoją konkurencję, pokonując najnowocześniejsze aplikacje mobilne ...

To ma sens. Brzmi jak zwycięska strategia.

Uniemożliwia również korzystanie z jakichkolwiek bibliotek innych firm, których nie możesz zagwarantować, a które zostały opracowane w prostym języku C, C ++ lub Objective C.

Zasadniczo oznacza to, że nie można kupować w interfejsach Games API, takich jak Unity.


2
Dobrze, biorąc pod uwagę, że smalltalk-80 wyprzedza o kilkanaście lat c # ...
Stephan Eggermont

jak zapewne wiesz, Objective C było w zasadzie C z pewnymi rozszerzeniami SmallTalk.
AnthonyLambert,

4

Dodam tylko moje 2 centy. Wydaje się, że po przeczytaniu tej części: (np. Aplikacje, które odsyłają do udokumentowanych interfejsów API za pośrednictwem pośredniego tłumaczenia lub warstwy lub narzędzia kompatybilności są zabronione) nie ma nic do omówienia. Wyrazili je jednoznacznie. Nie tylko banują MonoTouch i Unity3d, ale wygląda na to, że zakazują także Titanium Framework . Jednak po przeczytaniu tego artykułu poczułem się naprawdę zdezorientowany. Nie znam prawa Stanów Zjednoczonych, ale czy jest to legalne? To znaczy, czy nie łamią jakichś praw antymonopolowych?

Poza tym nie rozumiem ich motywacji. Nie tylko częściowo stracą zainteresowanie deweloperów, ale też, jak sądzę, stracą ich szacunek.


4

Na dzień dzisiejszy sekcja 3.3.1 licencji programu Apple iOS Developer została przywrócona do starego tekstu:

3.3.1 Aplikacje mogą używać udokumentowanych interfejsów API wyłącznie w sposób określony przez Apple i nie mogą używać ani wywoływać żadnych prywatnych interfejsów API.

Apple wydało oficjalne oświadczenie w sprawie zmian w licencji.

Oznaczałoby to, że można teraz używać MonoTouch.


+1 za dołączenie rzeczywistej treści, a nie tylko linku lub oświadczenia.
davidtbernal

3

Jednym z celów zespołu Mono jest przeniesienie Silverlight na iPhone'a za pomocą MonoTouch / Moonlight w celu programowania międzyplatformowego. To trochę jak przenoszenie Flasha na iPhone'a. Jest też Monodroid, który pomoże nam w przenoszeniu aplikacji, a wiesz, Apple uruchamia amonk za każdym razem, gdy ktoś mówi „Android” :-) IMHO, jeśli Apple celuje w Adobe z nową umową, to także Novel. Prawdopodobnie spekulujemy i istnieje umowa NDA, ale wielu z nas zainwestowało dużo czasu w tę platformę, więc musimy wyjaśnić sytuację. Nie możemy się doczekać następnego lata, aby omówić tę sprawę. Na przykład znajomy poprosił mnie o pomoc w opracowaniu prototypu aplikacji MonoTouch dla klienta. Czy nowa umowa ma wpływ tylko na dystrybucję App Store? A co z dystrybucją wewnętrzną?


dlaczego nie AppleTalk ładnie do chłopaków Mono i zachęcić ich do spadku poparcia dla Droid zamiast ....
AnthonyLambert

1
@tony dlaczego mieliby zrezygnować z obsługi znacznie bardziej otwartej platformy
PeteT,

2

Ten arkusz kalkulacyjny Google Docs zawiera długą listę aplikacji, na które będzie miała wpływ nowa umowa. Niektóre z nich, które były nr 1 w Appstore w swojej kategorii:

  • Monopol
  • Lemonade Tycoon
  • Piłka do skee
  • Osadnicy
  • Zombieville

Jednym z zabawnych dodatków jest Toy Story.


1
Nowa umowa obejmuje wszystkie wersje systemu operacyjnego, a nie tylko 4.0.
Philippe Leybaert

Słuszna uwaga, zapomniałem, że musisz podpisać nową umowę na stronie
Chris S

2

oWiele aplikacji zostało zaakceptowanych w ciągu ostatnich kilku dni napisanych przy pomocy monotouch i jedności, ale ja również używam go i obj-c, od ogłoszenia i zmiany w umowie, więc GO FIGURE, ... dobrze na myśl przychodzi ol'WTF. Wydaje się, że jest to dwubiegunowa skarbonka.

TAKŻE ostatnia gra Unity GiantMOTO, która znajduje się w GORĄCYCH NOWYCH GRACH - WCZORAJ, ma na ekranie powitalnym onLoad napisany dużymi literami, ZASILANIE JEDNOSTKĄ. Tak więc wszystkie domysły, przypuszczenia itp. Są naprawdę na wyciągnięcie ręki. To wszystko mogłoby powiedzieć, że w nowej wersji na pewno NIE jest to egzekwowane. Montouch to jedyna platforma programistyczna, która W PEŁNI udostępnia API iPhone'a i CAŁKOWICIE buduje w obj-c przy użyciu XCode.


1

Z tego, co mówi umowa licencyjna, aplikacje MonoTouch wyraźnie nie będą dozwolone w AppStore.

Bardziej interesujące jest jednak pytanie, w odniesieniu do jakich frameworków / aplikacji będą to egzekwować? Będą również musieli napisać testy automatyczne, aby sprawdzić, czy aplikacje zostały napisane natywnie, czy nie, ponieważ osoby, które zatwierdzają aplikacje, nie będą miały czasu / umiejętności, aby to zrobić dla każdej aplikacji. Te aplikacje nie umieszczą tam naklejki „Korzystanie z MonoTouch / Flash”.


1
Myślę, że będzie to zautomatyzowany proces. Domyślam się, że monotouch, a kompilator flasha pozostawi typowe wzorce kodu z konwersji, które można statystycznie wybrać z skompilowanego kodu.
PeteT

3
tak, jeśli Apple użyje jakiegoś automatycznego procesu, z pewnością znajdzie wzorzec konwersji. Ale ta polityka zastosowania jest absurdalna. Mam na myśli, że Obj-C jest do bani, to naprawdę niejasny język. Bardzo podoba mi się to, co oferuje MonoTouch.
Shoaib Shaikh

@Shoaib Z pewnością zgadzam się, że to absurd i przeniesie wielu programistów do telefonów z systemem Android i Windows, co w pewnym sensie jest dobre dla konkurencji.
PeteT

1

Krótka odpowiedź na wszystkie te plamy w umowie brzmi TAK .

Apple w zasadzie strzela sobie w stopę, ograniczając programy do kilku języków:

  • C - który obecnie nie nadaje się do tworzenia aplikacji ze względu na jego niskopoziomowy charakter. Obecnie jest to głównie język programowania systemów.
  • C ++ - co utrudnia strzelanie z telefonu, ale kiedy to się dzieje, jest to bazooka. Oprócz Qt, nie ma żadnych kompletnych frameworków aplikacji do użycia w C ++ (a Qt nie obsługuje iPhone'a - jeszcze).
  • Cel-C - który został wynaleziony przez Apple i oczywiście będzie obsługiwany.
  • JavaScript działający w WebKit - w zasadzie aplikacja internetowa.

Celowo ograniczają narzędzia, których można użyć do stworzenia iPhone'a, co prawie na pewno wpędzi ich w poważne kłopoty. Jestem pewien, że spora część społeczności po prostu zrezygnuje z tworzenia iPhone'a i przeniesie się na inną platformę, taką jak Windows Mobile, Symbian, Android lub Maemo, które są całkowicie otwarte - możesz napisać swoją aplikację w LOLCODE.

Oprócz tego, że prawdopodobnie robi to z iPhone'a śmieciami dla programistów, daje również Adobe miłego pocałunku: Apple celowo blokuje Flasha na iPadzie, a teraz blokuje go również z iPhone'a. Nummer to największa funkcja Adobe Flash w CS5, polegająca na wdrażaniu aplikacji Flash na iPhonie.

tl; dr: Apple po prostu strzela sobie w stopę tym ruchem.


Apple przede wszystkim strzelił sobie w stopę i wszyscy mówili: „Apple jest skazane na porażkę z powodu zamkniętej architektury”. Okazuje się, że strzelenie sobie w stopę - jak powie każdy pracownik, który staje się konsultantem - jest często dobrą strategią.
Dan Rosenstark

Tak, wstrzymuj oddech, aby ta spora część społeczności rzuciła tworzenie iPhone'a!
kirk.burleson

Objective-C nie jest naprawdę wymyślony przez Apple, to jest po prostu przyjęte jak LLVM i samych częściach BSD :)
Emil Marashliev

1

Minęły miesiące po flashowej porażce i jest całkiem oczywiste, że Monotouch i Unity radzą sobie dobrze.

Zgodnie z „Zabronione są aplikacje, które zawierają odsyłacze do udokumentowanych interfejsów API za pośrednictwem pośredniego tłumaczenia lub warstwy zgodności lub narzędzia”

Monotouch kompiluje kod do natywnego pliku binarnego, nie ma „warstwy”. Odnoszą się do czegoś takiego jak środowisko uruchomieniowe .NET, Java JVM lub Flash.


Mówi o udokumentowanych interfejsach API. Więc myślę, że nie ma znaczenia, czy kompilujesz do biblioteki natywnej, czy nie
vodkhang

Chodzi o to, że musisz kupić Maca, aby rozwijać się na iPhone'a. Dotyczy to nie tylko Java i Flash, ale także mono, ponieważ mono umożliwia programowanie na komputerze z systemem Windows / Linux. Ale w przeciwieństwie do Javy czy Flasha, mono jest prawdopodobnie mało używane, więc jeszcze ich to nie obchodzi.
Stefan Steiger,

1

Aplikacje mono normalnie kompilowałyby się do kodu bajtowego, który jest i wymagałby kompilacji JIT (just in time) do ich uruchomienia, dlatego wymagana jest struktura .Net lub Mono. Jednak w przypadku systemów iOS i Android aplikacja Mono jest kompilowana do kodu natywnego. Dlatego w oczach Apple nie ma trzeciej warstwy , Apple nigdy nie zablokuje Mono. Możesz więc swobodnie rozwijać się za pomocą MonoTouch i rozpowszechniać swoje aplikacje. Aby zapewnić Ci więcej, w AppStore są różne aplikacje Mono (w tym gry i aplikacje), które istnieją od dłuższego czasu.

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.