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.


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.
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.
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…
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.
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.
@eee: iPhone ma mozliwosc ogladania video, na przyklad z YouTube. Nie potrzebuje do tego flasha.
Co ma flash do video?
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.
Coraz większa część jest w Silverlight i co?
Silverlighta ma może 5% użytkowników. Ci, którzy w to inwestują to samobójcy…
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…
oO: Ale SL jest promowany przy najbardziej obleganych streamach. Olimpiady, rozdania nagród itp. Ms nie jest głupi.
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ę.
To podobnie jak ci którzy inwestują w Linuksa, który ma mniej niż 5%.
To nie video jest złe tylko technologie flash i sl. Na szczęście html5 nas uwolni od nich.
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.
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.
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%.
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ć :).
@yrk: Wyniki sprzedaży iPhone'a dowodzą, że jednak jakieś zastosowanie do takiego smartfona ludzie potrafią znaleźć.
– 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 :/
@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.
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.
Moment. Czym się różni w takim razie rewolucyjny Ahead-Of-Time (AOT) od starej, dobrej statycznej kompilacji?
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 😉
"Apple z blokowania aplikacji firm trzecich zarabia krocie w appstore"
Czy to samo sobie nie przeczy?
Nie. Gdyby działały głupie gierki flashowe mniejszy byłby popyt na głupie gierki z AppStore!
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.
Z resztą teraz developerzy tych głupich gierek flashowych będą mogli sobie w końcu zarobić.
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 .
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 😉
W ARM jest jeszcze Jazelle. Nie wiem czy na to pozwala Apple.
"A flash obejrzyj cokolwiek z yt bez niego" – żaden problem 😛
Dokładnie. Akurat w iPhonie jest odtwarzacz wideo z YouTube. Jest to natywna aplikacja na iPhona i nie wymaga żadnego flasha…
a jak w zasadzie działa ten player youtube? używa html5, czy jakiegoś innego, specjalnie dla tego celu napisanego przez apple wynalazku?
@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.
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
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.
Jak ktoś chce programować w Lua aplikacje na iPhone to może: http://anscamobile.com/corona/