iphone - tutorial - xamarin visual studio 2017




Сейчас MonoTouch запрещен на iPhone? (12)

Обновить -

apple.com/pr/library/2010/09/09statement.html это apple.com/pr/library/2010/09/09statement.html . MonoTouch больше не будет конфликтовать с соглашением. Все приведенные ниже утверждения являются чисто историческими!

Да, теперь, по их лицензионному соглашению, довольно ясно, что если оригинальное приложение написано на C #, это будет нарушать лицензию:

... Приложения должны быть изначально написаны в Objective-C, C, C ++ или JavaScript, которые исполняются движком Web OSK iPhone OS ...

Они даже забивают его чуть дальше:

Приложения, которые ссылаются на Документированные API через посреднический перевод или уровень совместимости или инструмент, запрещены

Вид обломка, MonoTouch и Flash CS5 -> iPhone-конвертер очень крутые.

Недавняя статья Джона Грубера отмечает, что следующие законные:

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

Был пересмотрен следующим образом:

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 (eg, Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

И делает следующее замечание:

Мое чтение этого нового языка заключается в том, что кросс-компиляторы, такие как компилятор Flash-to-iPhone в выпуске Adobe Flash Professional CS5, запрещены. Это также запрещает приложения, скомпилированные с помощью MonoTouch - инструмента, который компилирует приложения на C # и .NET на iPhone.

Это фактически запрещает использование Monotouch для IPhone?


Обновить:

Новые изменения в разделах 3.3.1, 3.3.2 и 3.3.9 сделали MonoTouch (и все другие кросс-компиляторы / языки / и т. Д.) Вполне приемлемыми на iPhone. См. apple.com/pr/library/2010/09/09statement.html Apple

Miguel , похоже, так не думает. См. tweet и response Мигеля. Давайте не будем слишком остро реагировать на это и скажем, что Monotouch мертв, или перестать развиваться вместе с Monotouch до тех пор, пока все разъяснения не будут сделаны всеми участвующими сторонами.

Это говорит о том, что я определенно начну вкладывать тепло в Apple для такой драконовской политики развития. Такие вещи, и туманный процесс, который является политикой утверждения приложений iphone / ipad / touch, должен нанести страх в сердца разработчиков. Что дальше, их лицензия на то, что единственной платформой Ad, которую вы разрешили использовать, является iAd? Не разрешать распространение бесплатных приложений без iAd? Медленно увеличивая долю Apple в доходах от продаж приложений? Как разработчики в закрытой экосистеме, мы вроде лягушки в горшке с горячей водой, и Apple медленно поднимает жару. Сейчас самое время изучить другие мобильные платформы, потому что по мере того, как они становятся лучше, главное, чтобы люди на платформе Apple отсутствовали на других платформах.


В новом лицензионном соглашении прямо сказано об этом. Да, это будет запрещено.

Совет, если вы хотите действительно разработать для iPhone, попробуйте XCode. Если вы уже знакомы с Java или C # или еще лучше C ++, то изучение Objective-C не будет таким трудным.

iPhone / iPad - это новый успешный бизнес Apple, и они будут делать все, чтобы этот бизнес рос, возможно, теперь они не будут запрещать приложения Monotouch, но кто знает, что следующий шаг? Поэтому, если вы действительно действительно заинтересованы в iPhone dev, вместо того, чтобы иметь кошмары, что ваша работа может быть просто отвергнута. Просто переключитесь на XCode, по крайней мере, это снизит процент отклонения вашего приложения. Следовательно, мой совет.


Все Apple говорит, что вы все должны использовать языки 1980-х годов, чтобы развить конкуренцию, избивая современные мобильные приложения ....

Делает совершенный смысл. Похоже на выигрышную стратегию для меня.

Это также останавливает вас от использования каких-либо сторонних библиотек, которые вы не можете гарантировать, что они были разработаны на прямых C, C ++ или Objective C.

Таким образом, это означает, что вы не можете покупать в Games API, например Unity.


Короткий ответ на все, что blob в соглашении - ДА .

Apple в основном стреляет в ногу, ограничивая программы на несколько языков:

  • C, что в настоящее время не подходит для разработки приложений, из-за его низкого уровня. Сегодня это язык системного программирования.
  • C ++ - что затрудняет съемку вашего телефона, но когда это происходит, у вас есть базака. Помимо Qt, в C ++ нет каких-либо полных программных фреймворков (а Qt еще не поддерживает iPhone).
  • Объектив-C, который был изобретен Apple и, конечно же, будет поддержан.
  • JavaScript работает в WebKit - в основном веб-приложение.

Они намеренно ограничивают, какие инструменты вы можете использовать для разработки для iPhone, что почти наверняка вызовет у них серьезные проблемы. Я уверен, что хороший размер сообщества просто прекратит разработку iPhone и перейдет на другую платформу, такую ​​как Windows Mobile, Symbian, Android или Maemo, которые полностью открыты - вы можете написать свое приложение в LOLCODE.

Помимо возможного создания iPhone для разработчиков, он также дает Adobe приятный поцелуй: Apple намеренно блокирует Flash от iPad, и теперь они также блокируют его от iPhone. Nummer является самой большой функцией Adobe Flash CS5, которая развертывает Flash-приложения на iPhone.

tl; dr: Apple в основном стреляет в ногу с этим движением.


Моно-приложения обычно компилируются в байт-код, который есть и будет требовать компиляции JIT (как раз вовремя) для их запуска, поэтому требуется инфраструктура .NET или Mono. Однако, в случае iOS и Android, приложение Mono компилируется в собственный код. Поэтому в глазах Apple нет третьего слоя , Apple никогда не запретит Mono. Поэтому вы можете свободно работать с MonoTouch и распространять свои приложения. Чтобы обеспечить вас дальше, в AppStore существует множество приложений Mono (включая игры и приложения), которые существуют в течение длительного времени.


Надеюсь, что Apple будет преследовать эту смешную политику. Высокомерие не привлекательно и вообще плохо для бизнеса. Это одна из причин, почему я не начал разработку iPhone.

Большинство поставщиков оборудования и ОС рады иметь дополнительные инструменты и аудиторию для записи на свою платформу. Apple придерживается позиции, что его инструменты (braindead) - единственная игра в городе.

Объявление «Большой брат» с 1984 года становится все более актуальным ...

РЕДАКТИРОВАТЬ

То, как это написано, также, по-видимому, означает, что если я написал .net для объектного транслятора C / apple, код не является приемлемым, потому что исходный код не был объективным. C. Это смехотворно (и невыполнимо).


Одной из целей команды Mono является перенос Silverlight на iPhone с помощью MonoTouch / Moonlight для кросс-платформенной разработки. Это похоже на перенос Flash на iPhone. Существует также Monodroid по пути, чтобы помочь нам портировать приложения, и, вы знаете, Apple запускает amonk каждый раз, когда кто-то говорит «Android» :-) ИМХО, если Apple нацеливается на Adobe с новым соглашением, они также нацелены на Novel. Мы, вероятно, спекулируем, и есть NDA, но многие из нас инвестировали много времени на эту платформу, поэтому нам нужно сделать ситуацию ясной. Мы не можем ждать следующего лета, чтобы обсудить этот вопрос. Например, меня попросил друг помочь своей компании прототипировать приложение MonoTouch для клиента. Влияет ли новое соглашение только на дистрибутив App Store? Как насчет внутреннего распределения?


Прошло уже несколько месяцев после вспышки, и довольно очевидно, что Monotouch и Unity отлично справляются.

Согласно «Приложениям, которые ссылаются на Документированные API через посреднический перевод или уровень совместимости или инструмент, запрещены»

Monotouch компилирует код до собственного двоичного файла, нет «слоя». Они имеют в виду somethign, как среда выполнения .NET, Java JVM или Flash runtime.


Я думаю, что что-то, что нужно учесть, - это мотивация Apple.

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

Но это не то, что Monotouch. Monotouch все об использовании фреймворков Apple для написания приложений - но через Mono, а не Objective-C. Итак, с этой точки зрения, что делает Monotouch, это не то, что должно действительно беспокоить Apple.

Я по-прежнему считаю, что разработчикам лучше писать на родном языке платформы, которую они используют, поскольку вещи обычно более плавные, когда вы не вводите систему, которая может иметь несоответствие импеданса абстракции - все каркасы Cocoa были созданы для использования с Objective-C, и они имеют наибольший смысл, когда вы привыкли к философии Objective-C. Но я надеюсь, что Apple снизится на стороне использования MonoTouch.


В этой таблице google docs есть длинный список приложений, на которые повлияет новое соглашение. Некоторые примечательные, которые были # 1 в appstore для своей категории:

  • монопольный
  • Лимонный магнат
  • Skee ball
  • Поселенцы
  • Zombieville

Одним из забавных включений является Toy Story.


Unity также основана на Mono, и с этим является значительным коммерческим продуктом. Я полагаю, что это проблема, о которой мы еще не слышали.

Запрет на все приложения, которые не написаны в Obj-C / C ++, теоретически запретит также все игры Unity, которых уже есть в магазине приложений.

Этот вопрос также был задан на сайте Unity Answers, и их официальный ответ:

«Мы только что услышали об iPhone OS4.0 и новых Условиях обслуживания. Хотя мы считаем, что мы полностью согласны с этим, мы сейчас делаем все возможное, чтобы проверить это Apple. Как только мы точно знаем, мы, разумеется, будем делиться этой информацией со всеми. Пожалуйста, повесьте трубку, пока мы это обсудим ».

Интересно посмотреть, что они говорят Apple.

Дело в том, что, скажем, приложение должно быть написано на определенном языке, является немного неправильным, поскольку, как только приложение скомпилировано, оно всегда является родным двоичным кодом, независимо от того, как он был создан. Я предполагаю, что все, что они могут искать, это какая-то подпись в двоичном коде, чтобы определить, с каким инструментом он был построен. Недостаток подхода.

EDIT: Есть интересный обзор ситуации в этом блоге: monotouch теперь мертв в воде, что означает, что яблоки нового соглашения о разработке iphone означают





xamarin.ios