Projekt Mono na iPhone, czyli jak otwarty .NET omija restrykcje Apple

  • Home
  • /
  • Blog
  • /
  • Projekt Mono na iPhone, czyli jak otwarty .NET omija restrykcje Apple

Data: 19 lutego, 2010

Apple nie pozwala instalować na swoich produktach mobilnych aplikacji korzystających z wirtualnych maszyn bądź podobnych rozwiązań. Oficjalnie tłumaczy to troską o wygodę i dobro konsumenta, lecz według komentatorów chodzi jedynie o pełną kontrolę nad platformą. Dlatego urządzenia takie jak iPhone nie posiadają Flasha, Javy ani innych wirtualnych środowisk uruchomieniowych. Jednak ekipie z Novella, zajmującej się rozwojem Mono, udało się obejść ograniczenia narzucane przez Apple.

Joseph Hill z Novella w rozmowie z Edem Brunette opowiada, w jaki sposób jego zespół stworzył rozwiązanie pozwalające uruchamiać na iPhone (i iPad) programy napisane dla platformy Mono:

Ed: Dlaczego Apple umożliwia użycie technologii .NET za pomocą MonoTouch, podczas gdy wyklucza użycie Javy na iPhone/iPad?

Joseph: Java (i inne środowiska uruchomieniowe) są wykluczone z platformy iPhone, ponieważ [napisana w niej – przyp. tłum.] aplikacja nie może uruchamiać kodu z zapisywalnej pamięci. Maszyny wirtualne – takie jak Java czy .NET – generują natywny kod z bytecode’u w locie, a następnie go wykonują; jednakże, z różnych względów, jądro iPhone’a nie pozwoli na uruchomienie tego kodu. Technologia Ahead-Of-Time (AOT), dostępna w Mono, omija ten problem generując cały natywny kod – który aplikacja miałaby generować w locie – przed jej uruchomieniem, dzięki czemu uruchamiana na iPhone aplikacja jest w 100% natywna.

Dalej omawiane są ograniczenia w dostępie do bibliotek Mono i mechanizmów .NET z poziomu MonoTouch, a także dostępne narzędzia, pozwalające tworzyć aplikacje w tej technologii. Wywiad kończy się konkluzją Eda:

Miejmy nadzieję pewnego dnia ujrzymy więcej podobnych obejść dla języków takich jak Java czy Lua, bądź być może Apple po prostu ustąpi i zniesie ograniczenia. Programiści powinni mieć możliwość dobrania jak najlepszych narzędzi według ich własnych potrzeb i doświadczenia, a nie arbitralnych zasad ustalonych w Cupertino.

Podobne wpisy

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone


  1. Po co komuś smartfon bez możliwości instalacji flash? Nie żebym był jakimś miłośnikiem tej technologii, ale nie bardzo wyobrażam sobie smartfon bez opcji oglądania wideo.

    1. Ło$ pisze:

      OFFTOP

      Zamień w swojej wypowiedzi "wideo" na "reklam" i już będziesz wiedział dlaczego nie wszyscy kochają flasha 😉
      …a nawet samo "wideo" zdecydowanie bardziej wolę oglądać bez ślamazarnego (na moim kosmicznie wyczesanym sprzęcie z ubiegłego wieku JEST ślamazarny) flasha po drodze.

      1. Nawet zabugowana wtyczka flash beta po Linuksy 64bit radzi sobie o wiele lepiej z odtwarzaniem wideo od rozwiązanień typu mplayer-plugin vlc-plugin. Taki mplayer-plugin w 75% prowadzi do zawieszenia lub zamknięcia przeglądarki i nikt o tym nie wspomina tylko wszyscy atakują flasha…

        1. dzikus pisze:

          Taki mplayer-plugin potrafi wyświetlać fullhd w h264 na moim sprzęcie z obciążeniem procka na poziomie 3%, film flash jaki by nie był (może być nawet sd), wysyca 1 z moich procków w 100%.

          Teraz przełóż to na energię i długość pracy na baterii.

        2. Taki mplayer-plugin potrafi wyświetlać fullhd w h264 na moim sprzęcie z obciążeniem procka na poziomie 3%, film flash jaki by nie był (może być nawet sd), wysyca 1 z moich procków w 100%.

          Sprawdziłem przed chwilą na:
          http://www.youtube.com/watch?v=Js7wxoqeVK0
          24-29%CPU dla 360p
          42-49%CPU dla 720p
          AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
          Moim zdaniem jest to akceptowalny wynik bez akceleracji sprzętowej, której mój sprzęt w przeciwieństwie do twojego nie wspiera.

    2. trasz pisze:

      @eee: iPhone ma mozliwosc ogladania video, na przyklad z YouTube. Nie potrzebuje do tego flasha.

      1. maciek pisze:

        Większość materiałów wideo w Sieci dalej jest udostępniana z użyciem flasha. Nie żeby było to właściwym podejściem do tematu, ale tak jest.

        1. sprae pisze:

          Coraz większa część jest w Silverlight i co?

        2. Silverlighta ma może 5% użytkowników. Ci, którzy w to inwestują to samobójcy…

        3. Silverlight to powstały z grobu Microsoft Chrome aka Chromeffects. Z grobu powstało, do grobu wróci.

          http://windowsitpro.com/article/articleid/17899/m…

        4. sprae pisze:

          oO: Ale SL jest promowany przy najbardziej obleganych streamach. Olimpiady, rozdania nagród itp. Ms nie jest głupi.

        5. przemo_li pisze:

          Co nie zmienia faktu, że wolę flasha od SL 😀 ot wolę mieć różna zamknięte paskudztwa od rożnych dostawców niż wszystko od jednego.

          PS HTML5 stara się właśnie wykosić SL, AIR, JavaFX, Flasha (w niektórych zastosowaniach) i jemu kibicuję.

        6. aix_Wolna_Głupota pisze:

          Silverlighta ma może 5% użytkowników. Ci, którzy w to inwestują to samobójcy…

          To podobnie jak ci którzy inwestują w Linuksa, który ma mniej niż 5%.

        7. zhost pisze:

          To nie video jest złe tylko technologie flash i sl. Na szczęście html5 nas uwolni od nich.

    3. sprae pisze:

      Adobe w kolejnym wydaniu Flash CS5 chce zastosować również AOT do kompilacji apletów flashowych na platformy mobilne Apple. Jak dobrze się uda to nawet ten wymysł Flex/Air będzie.

      Co do Mono to taki był wymóg jednego z użytkowników – firmy stojącej za silnikiem Unity3d.

    4. Ja się bardziej zastanawiam po co komu smartphone, którego producent ze względu na "wygodę" i "dobro konsumenta" ogranicza jego zasób oprogramowania do minimum pochodzącego wyłącznie od producenta (Apple Store). Huh? No tak, zapomniałem… przecież chodzi o to jabłuszko na obudowie. Dziwie się tylko ludziom, że się tak dymać dają.

      Nawet Windows zapewnia mi możliwość instalacji wolnego oprogramowania typu OO, Firefox itp. Steve Jobs widocznie poszedł trochę dalej.

      1. sprae pisze:

        Tak, ustanowił, że nie będziemy wykonywać dynamicznego kodu.
        Dzięki temu genialnemu posunięciu dramatycznie zmniejszył atrakcyjność urządzenia w grupie wielbicieli Flasha, dramatycznie też podnosząc jego bezpieczeństwo i płynność działania przeglądarki. Mono się dostosowało, Adobe stara się też, ale dziennikarze szukają dziury w całym.
        Proponuję też doczytać "Doktrynę jakości" i zastanowić się czy dla większości ludzi urządzenie wyświetlające skaczące strony z flashem z zapchaną pamięcią jest atrakcyjniejsze od płynnego z samym html.
        Tylko proszę nie mówić, że ludzie zainstalują sobie adbloka i wyłączą flasha kiedy nie będzie potrzebny. W Firefoxie robi to 1%.

        1. dzikus pisze:

          Tylko co ma piernik do wiatraka?

          Twój przedmówca o dostępie do softu, ty o technologiach softowych.

          Wyobraź sobie że ja potrafię napisać i skompilować program na iPhone'a, ale to Steve&apple nie pozwala mi tego programu rozdawać za darmo.

          PS. Wiatrak da się spierniczyć :).

      2. ufoludek pisze:

        @yrk: Wyniki sprzedaży iPhone'a dowodzą, że jednak jakieś zastosowanie do takiego smartfona ludzie potrafią znaleźć.

        1. – pochwalenie się przed znajomymi
          – szpan na ulicy/w tramwaju
          – dowartościowanie ego
          – wyrwanie jakiejś przelotnej osoby
          – granie w durne gierki w wolnej chwili
          – wykonywanie rozmów? chociaż niezbyt to wygodne do trzymania przy uchu :/

      3. trasz pisze:

        @yrk: Moze dlatego, ze tego "ograniczonego oprogramowania" jest rzad wielkosci wiecej niz nieograniczonego oprogramowania na inne platformy. Albo dlatego, ze nie ma problemu, ze cos nie dziala albo zawiera malware – znow, inaczej niz w innych platformach.

  2. trasz pisze:

    Czy jakakolwiek aplikacja rzekomo omijajaca zasady wprowadzone przez Apple w sposob opisany w artykule znalazla sie w AppStore? Bo jesli nie, to to "omijanie" niespecjalnie ma miejsce.

    A co do zasad ustalonych w Cupertino – cos za cos. Z jednej strony troche trudniej programistom, z drugiej nieporownywalnie latwiej uzytkownikom. Fakt, iz iPhone'a to jednoczesnie platforma mobilna z najwieksza iloscia oprogramowania i jedyna platforma bez malware'u nie bierze sie z nikad.

  3. Cause pisze:

    Moment. Czym się różni w takim razie rewolucyjny Ahead-Of-Time (AOT) od starej, dobrej statycznej kompilacji?

  4. krzabr pisze:

    Apple z blokowania aplikacji firm trzecich zarabia krocie w appstore stąd nie ma co się dziwić dlaczego tak radykalnie podchodzą do tej sprawy .

    A flash obejrzyj cokolwiek z yt bez niego , chociaż Iphone omija ten problem 😉

    1. sprae pisze:

      "Apple z blokowania aplikacji firm trzecich zarabia krocie w appstore"

      Czy to samo sobie nie przeczy?

      1. maciek pisze:

        Nie. Gdyby działały głupie gierki flashowe mniejszy byłby popyt na głupie gierki z AppStore!

        1. sprae pisze:

          Maćku: To tylko hipoteza. A co z głupimi gierkami w html5? To co można zobaczyć na chromeexperiment, albo w freeciv dla html napawa pełnym optymizmem.

        2. sprae pisze:

          Z resztą teraz developerzy tych głupich gierek flashowych będą mogli sobie w końcu zarobić.

        3. krzabr pisze:

          Znowu błąd składni chodzi o to że gdyby apple umożliwiło instalowanie aplikacji spoza appstore to miałoby mniejsze zyski z tego sklepu .

          A html5 dopiero się rozkręca , a gry robione pod niego czy flasha raczej różnia się od gierek z appstore , w appstore są głównie wyścigówki czy strzelanki czyli coś co standardowo było w javie . A flash to gierki innego typu . 🙂

          Co do html5 to nie znam gierek używających tej technologi więc się nie wypowiadam .

        4. maciek pisze:

          Sprae: oczywiście! Liczę, że w przyszłości HTML5 wyprze flasha również w roli platformy głupich gierek, bo jak słusznie zwracasz uwagę, da się to zrobić.

          Inna rzecz, że jeśli Safari w iphone obsługuje Javascript, to znaczy, że w iPhone działają "aplikacje korzystające z maszyn wirtualnych lub podobnych rozwiązań", pod warunkiem, że rozwiązaniem tym jest Javascript w Safari 😉

        5. sprae pisze:

          W ARM jest jeszcze Jazelle. Nie wiem czy na to pozwala Apple.

    2. Sebastian Krzyszkowi pisze:

      "A flash obejrzyj cokolwiek z yt bez niego" – żaden problem 😛

      1. morsik pisze:

        Dokładnie. Akurat w iPhonie jest odtwarzacz wideo z YouTube. Jest to natywna aplikacja na iPhona i nie wymaga żadnego flasha…

        1. wujek_bogdan pisze:

          a jak w zasadzie działa ten player youtube? używa html5, czy jakiegoś innego, specjalnie dla tego celu napisanego przez apple wynalazku?

        2. marcinsud pisze:

          @wujek_bogdan filmy na yt są też w mp4 więc pewnie ściąga tamta wersję, albo filmy są konwertowane na jakimś serwerze. Sam player działa pewnie tak samo jak playery niemal wszystkich telefonów które się teraz sprzedaje. Nawet tanie ciasteczko od LG ma playerka.

        3. jellonek pisze:

          na yt od niedawna dostepne sa filmy w postaci czegos normalnego zjdaliwego dla html5 – i to tez jako opcja wylaczenie.
          natywnym dla flash formatem video jest flv

        4. morsik pisze:

          wujek_bogdan: poprostu streamuje plik z youtube.com.
          Na ekranie początkowym widzisz listę filmów polecanych, lub szukajkę, szukasz i odtwarzasz. Żadnego html5, żadnego flasha. Poprostu program.

  5. piotr.jaskulski pisze:

    Jak ktoś chce programować w Lua aplikacje na iPhone to może: http://anscamobile.com/corona/

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Newsletter OSnews raz w tygodniu. Bez reklam.