Почему Apple разрешает .NET на iPhone, но не Flash? - PullRequest
3 голосов
/ 31 января 2010

Из того, что я понимаю, Apple запретила запуск Flash на iPhone, потому что Apple не хочет альтернативной среды выполнения, которую Apple предоставляет через свои собственные инструменты. Разрешение среды выполнения Flash, по мнению Apple, позволило бы разработчикам обходить политики обновления приложений и другие элементы управления, которые Apple ввела в действие. И в настоящее время Adobe не решила создавать инструменты для статической компиляции приложений, созданных во Flash.

Мое дальнейшее понимание состоит в том, что приложения .NET, созданные с помощью MonoTouch, статически предварительно скомпилированы и представляют iPhone как собственный код, а не работают в среде общего языка .NET (CLR), что Apple, безусловно, запретит. Поскольку код .NET выполняется не во время выполнения Microsoft, а скорее на процессоре iPhone, Apple не жалуется.

Мои вопросы:

  1. Правильно ли я понимаю, почему Apple разрешает приложения, разработанные для .NET, на iPhone?

  2. Отличается ли предварительно скомпилированный нативный код одного из поставщиков на iPhone (или, как я полагаю, от любой платформы) от любого другого? Другими словами, является ли нативный код, созданный MonoTouch, неотличимым от нативного кода, созданного скомпилированным кодом Objective C? Является ли исходный код полностью непрозрачным?

Ответы [ 6 ]

19 голосов
/ 31 января 2010

Как вы только что сказали, Apple не «позволяет» запускать .NET на iPhone - независимо от того, было ли приложение разработано в MonoTouch или написано на Cocoa или COBOL, или что-то еще; имеет значение только то, к чему это компилируется. Это может быть написано на JavaScript, и это не будет иметь значения.

Если я напишу что-нибудь по-английски, а затем переведу это на французский, может ли французский читатель сказать, что оригинальная версия была написана на английском? Возможно, скорее нет, и все зависит от характеристик перевода, а не от читателя. Все, что требуется Apple, - это версия, которую вы даете их написана на французском языке До этого момента нет никакой разницы.

Логическим расширением этого является то, что теоретически вы можете написать компилятор для файлов Flash, который создает автономные двоичные файлы iPhone. Если разработка во Flash - это то, что важно для вас. ( Это может или не может быть уже сделано Это уже было сделано. )

4 голосов
/ 31 января 2010

Все, что MonoTouch делает, это транслитерирует код Mono в цель C и компилирует его в собственный код, поэтому после компиляции он может «работать», несмотря на использование Mono. Это действительно оболочка для моно-кода, которая переводится в эквивалент целевого нативного кода C и библиотек времени выполнения.

Они не являются на самом деле .NET исполняющим кодом как таковым. Так что никакой разницы между ними нет! Как только он скомпилирован в нативный код, вот и все.

1 голос
/ 31 января 2010

Apple не безразлично, работает ли на iPhone виртуальная машина. Он заботится о том, чтобы на iPhone можно было запускать внешний код не из магазина приложений.

Именно поэтому Apple не будет заботиться о предложенном Adobe "Flash Compiler", который создает автономные приложения Flash. Вот почему Apple не заботится о скомпилированных проектах .NET.

Напомним, проблема с эмулятором C64. Apple лишь позаботилась о том, чтобы она включала в себя внутреннюю BASIC, но эмулятор является прекрасным примером виртуальной машины. Весь код C64, выполняемый этой виртуальной машиной, представляет собой 6502 машинный код. Но эмулятору не хватает возможности загружать произвольный код из сети и выполнять его.

Это то, чем занимается Apple.

0 голосов
/ 26 сентября 2013

Взгляните сюда, яблоко

Именно Adobe, а не Apple, разрабатывает Flash для различных ОС / устройств. Adobe не смогла разработать удовлетворительный Flash для устройств iOS.

http://www.apple.com/hotnews/thoughts-on-flash/

0 голосов
/ 10 марта 2010

Похоже, скоро вы сможете создавать родные приложения для iPhone прямо с флеш-памяти.

http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/

Будет интересно узнать производительность этих приложений, но я думаю, что именно для таких приложений будет работать множество секторов: медиа, маркетинг, бизнес.

0 голосов
/ 31 января 2010

1 - Вы в значительной степени правы. Я бы не сказал, что Apple «разрешает» приложения MonoTouch на платформе, просто они ничего не сказали публично, и в магазине приложений уже есть некоторые приложения MonoTouch. Это не значит, что они не начнут блокировать их всех завтра.

2 - Я не знаю много о внутренностях Mono Touch, но я бы предположил, что должны быть некоторые общие черты, которые есть в приложениях MT (то, как они раздувают двоичный размер, где-то должно быть немного общего) что Apple может использовать, чтобы выделить их. Конечно, это может потребовать невероятно значительных усилий с небольшой выгодой, и они, скорее всего, скорее потратят свое время на то, чтобы получить 3.2 и выше.

Я думаю, вы немного озадачены различием между инструментами, используемыми для разработки нативных приложений, и тем, какие плагины для браузера Apple хочет поддерживать в Safari. Совершенно разные понятия. Я думаю, вам следует прочитать недавнюю статью Джона Грубера , чтобы получить достаточно полную теорию о том, почему Flash никогда не будет на iPhone или iPad.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...