Как трудно разрабатывает для iPhone? [закрытый]

Из этого фрагмента

int a = 10;
a = ++a * ( ++a + 5);

Иногда наиболее простым решением является использование javap для понимания порядка оценки:

 0: bipush 10 // push 10 onto the stack (stack={10})
 2: istore_1  // store 10 into variable 1 (a = 10, stack={})
 3: iinc 1, 1 // increment local variable 1 by 1 (a = 11, stack={})
 6: iload_1   // push integer in local variable 1 onto the stack (a = 11, stack = {11})
 7: iinc 1, 1 // increment local variable 1 by 1 (a = 12, stack={11})
 10: iload_1  // push integer in local variable 1 onto the stack (a = 12, stack = {12, 11})
 11: iconst_5 // load the int value 5 onto the stack (a = 12, stack = {5, 12, 11})
 12: iadd     // add 5 and 12 (a = 12, stack = {17, 11})
 13: imul     // multiply 17 and 11 (a = 12, stack = {})
  1. a увеличивается на 1. (строка 3) // a = 11
  2. a увеличивается на 1. (строка 7) // a = 12
  3. добавляет 5 в a (строка 12) // a = 17
  4. умножить 11 на 17 (строка 13) // a = 187

(10 + 1 + 1 + 5) * 11 = 187

21
задан JPCF 2 November 2009 в 03:20
поделиться

8 ответов

  1. Один программист (хороший универсал) может легко сделать это. После того, как вы сделали свое первое приложение, вы будете удивлены, увидев, что продается и как мало актуально программирования в некоторых приложениях. Причина, по которой вы должны быть хорошим универсалом, заключается в том, что у успешных приложений есть все - дизайн, вдохновение, исполнение. Рассмотрите возможность привлечения дизайнера, если ваш вкус не соответствует тому, что кажется популярным. Не ожидайте, что отправите что-нибудь со стандартными кнопками UIB, в магазине это выделяется как пословицы. Нормальные практики необходимы, например, контроль версий, отслеживание проблем и все такое хорошее. Кажется, более важным является более высокий уровень API, с которым вы работаете.

  2. Кривая обучения SDK - не так уж и плохо. Первоначально вы боретесь с тем, почему NSArray не может принимать другое значение, но через 1-2 месяца вы будете создавать подклассы повсюду. Однако, читайте ниже, не пытайтесь делать слишком много пользовательских вещей ...

  3. Вам нужен Intel Mac, вам нужно как минимум iPod touch для отправки приложения - попробуйте отправить без тестирования на реальном оборудовании, и вы что-то пропустите, и оно будет отклонено. Вам не нужно иметь последнюю версию Mac OS или XCode, чтобы начать, но вы, вероятно, сделаете это для отправки в магазин. При настройке выбирайте больше оперативной памяти, чем больше скорость процессора. SSD имеет важное значение. БОЛЬШИЕ (или несколько) экранов, как и в любой задаче кодирования, являются большим преимуществом. Новый 27-дюймовый iMac был бы отличной машиной для разработки. Трудно ошибиться с текущими Mac, у меня был хороший опыт с 11-дюймовым Air и mini, они не так сильно отличаются от Mac Pro в плане разработки идет, когда у вас подключен большой монитор.

  4. Продажа не так сложно. При условии, что ваше приложение не является полным мусором и не получит 10 1-звездочных обзоров сразу, просто цифры принесут вам некоторые продажи. Сделать это сложно, и вам нужно исследовать маркетинг, просматривать сайты, твиттер, youtube, на самом деле ваши навыки универсального программиста вы можете добавить директора по маркетингу. Шум в магазине (огромное количество приложений) означает, что только действительно звездное приложение (то есть, представленное Apple) будет выделяться в отсутствие каких-либо других усилий. В магазине, вероятно, есть множество приложений, которые в 2008 году могли бы обогатить их разработчиков, в наши дни им повезло продать 1000. Стоимость присоединения составляет 99 долларов, после чего вы получаете 70% дохода от продаж, а Apple - 30%.

Кроме того ... С учетом того, что я программист на C / C ++, который проводил большую часть времени при программировании встроенных устройств и мобильных телефонов, почти без C # / STL / Java ...

Вот что я нашел легко / хорошо:

  • XCode (хотя я признаю, что начало работы вызывало раздражение из Visual Studio)

  • краткость - то, что вы можете сделать всего несколькими строками кода, просто поразительно

  • Стэнфордский CS193P Урок по программированию iPhone в iTunes University - отличное вступление, бесплатно!

  • Видеосеансы WWDC. Не дешево, но, вероятно, стоит больше, чем вы платите с точки зрения глубоких знаний. Я был на подобных конференциях разработчиков, которые были скорее оправданием для того, чтобы остаться в хорошем отеле и совершить некоторые беспошлинные покупки, но если я не буду на WWDCI, я почувствую, что у меня серьезные проблемы. Большим преимуществом попадания в WWDC являются люди, которых вы встречаете, и эти лабораторные занятия - это то, что вы выигрываете, если вам повезет в лотерейной лотерее. Все технические презентации вы получаете бесплатно на видео в эти дни.

Вот то, что я нашел трудно:

  • зная, какие классы хранения использовать в определенной ситуации. Моя первая огромная проблема с производительностью возникла в результате использования indexForObject в NSArray с сотнями тысяч объектов. Теперь это очевидно, но кто знает об этом в первый раз, когда это происходит с ними?

  • «отпустить» предвзятые представления о том, что должен делать пользовательский интерфейс. Не выкладывайте .xib, пока вы не используете по крайней мере 20 приложений для iPhone и не поймете, как обычно это делается. Делать что-либо иначе будет не только труднее, если ваша идея слишком далека от «Руководства по взаимодействию с человеком», скорее всего, она никогда не будет принята в магазине.

  • Сообщения отладки XCode - сделайте гугл, потому что они сначала загадочны, но когда вы найдете других людей, объясняющих их, они через некоторое время начинают обретать смысл

Вот что я обнаружил полное недоумение и начал работать методом проб и усилий:

  • процесс подготовки Apple к устройству
  • фактическая отправка в App Store

До сих пор я есть одна маленькая игра в магазине. Это не очень хорошая игра, если вам действительно не нравятся такие вещи, и только любители царапанья делают, но у нее все еще есть 10 продаж через 1 неделю, и это вообще без рекламы. Я сделал это, чтобы получить представление о том, как работает магазин, и по этому показателю это был успех. С точки зрения кривой обучения у меня ушло, вероятно, шесть-семь недель полного времени от открытия первого документа Apple до подачи игры, но сегодня я мог сделать это примерно через два дня.

править: Невероятно думать, что этому ответу уже более двух лет, и что люди все еще голосуют за него. Ну, я не стал миллионером в магазине приложений, но многие это сделали, и это все еще может произойти, даже если сейчас мы видим, как некоторые крупные компании производят очень качественные приложения с большим бюджетом. В чем секретный ингредиент? Страсть, которая привлекает внимание к деталям. Если вы любите свое приложение, у пользователей есть хороший шанс. Я не попал на WWDC 2010, но я добрался до 2011, 2012 и 2013 годов. Придерживайтесь этого, независимые разработчики - вы почти наверняка не добьетесь успеха в своем первом приложении, чтобы выйти на пенсию, но вы будете работать на потрясающей платформе , быстро растущий, с невероятным сообществом позади этого. Вы можете зарабатывать на жизнь самостоятельно. И если вы отказываетесь от своей независимости, рынок труда очень и очень хорош.

Больше редактировать: я упоминал CocoaHeads? Найдите своих местных программистов iOS и узнайте о CocoaHeads. Если нет ни одного, подумайте о начале. Либо вы откроете для себя возможности (например, проекты или даже трудоустройство), либо вы найдете людей, которые будут нанимать, когда вы преуспели и уже не можете быть магазином для одного человека. Не говоря уже о полезном бесплатном образовании, которое представляют докладчики в этих группах.

Swift теперь, возможно, менее странен, чем Objective C, кажется программисту, пришедшему с какого-то другого языка. Я действительно считаю, что это правильный выбор, если вы только начинаете, Apple явно продвигает его в будущее, и с 2014 года он стал намного лучше. Возможно, вы обнаружите, что изучение Swift является преимуществом, если у вас есть такая возможность - многие разработчики Застрял в поддержке существующих проектов в Цели C.

iOS продолжает расти и быть интересной и интересной платформой, и я не думаю, что она замедляется. OS X идет в ногу. Я все еще очень рад, что сделал выбор сделать это еще в 2009 году. Заходите, рынок в порядке.

48
ответ дан Adam Eberbach 29 November 2019 в 06:26
поделиться
  1. Зависит от того, что вы подразумеваете под «средним размером». Также зависит, сколько времени вы хотите, чтобы это заняло. В общем, чтобы создать достойное приложение, вам нужно сочетание вещей: навык программирования, художественный навык, навык дизайна и знание бизнеса. Большинство людей не любят делать все эти вещи. Я предполагаю, что в большинстве приложений для iPhone есть только один настоящий программист. Вы можете сказать те, которые были написаны программистом, который должен был получить некоторую помощь с другими аспектами.

  2. Зависит от того, что вы уже знаете. Мне потребовался месяц, прежде чем Цель C перестала казаться действительно странной, и я использовал много разных языков.

  3. Оборудование не является проблемой, если у вас еще нет Mac, iPhone и iPod Touch. Самая большая непрограммирующая вещь для меня - это процесс обзора в App Store; Вы должны понимать, что когда вы думаете, что все готово, вам нужно будет подождать пару недель, и вполне возможно, что идея, которую вы считаете великолепной, попадет в какую-то категорию, которая никогда не будет одобрена, или что вы Вам придется изменить имя вашего приложения и т. д.

  4. Легко предлагать приложения для продажи на iTunes, как только вы заплатите 99 долларов. Если ваша цель - скачать бесплатное приложение для людей со всего мира или выставить его на продажу и заработать десятки долларов, App Store - это здорово. Если вы надеетесь заработать миллионы долларов или даже тысячи, вам нужно быть комбинацией компетентных, настойчивых и удачливых.

5
ответ дан David Maymudes 29 November 2019 в 06:26
поделиться
  1. Каково ваше определение «среднего размера приложения». Это может быть просто вы сами или несколько человек, включая дизайнера. Кроме того, в некоторой степени, если у вас больше времени, вам нужно меньше людей.

  2. Это сильно зависит от вашего опыта на сегодняшний день. Многие люди пришли из разработки .Net и Java и не нашли это слишком сложным ... вам, вероятно, понадобится как минимум месяц, чтобы освоиться со многими концепциями.

  3. Вам нужен Mac, вот и все. Подойдет любой Intel Mac с 2 ГБ памяти.

  4. Это очень легко продать, так как все, что вы делаете, это загружаете двоичный файл и (после ожидания Apple одобрит его) Apple выставляет его на продажу. Вам не нужны серверы. Вы должны платить ежегодный взнос в размере 99 долларов для разработки.

1
ответ дан Kendall Helmstetter Gelner 29 November 2019 в 06:26
поделиться

Возможно, аналогия ... Я хочу знать, насколько сложно построить дом.

  1. С точки зрения строителя против сложности дома. Чтобы было понятно: сколько людей мне нужно, чтобы построить дом среднего размера?
  2. Кривая обучения электроинструменту.
  3. Разрешения, планы и другие не относящиеся к строительству вещи.
  4. Насколько легко продать мой дом?
0
ответ дан Trenton 29 November 2019 в 06:26
поделиться

Мы начали разработку около года назад, и в настоящее время на рынке представлены две игры OpenGL 2D. Мой опыт:

  1. Простое приложение легко может быть спектаклем одного актера. Для приложения среднего размера вы, вероятно, справитесь с помощью только одного хорошего программиста, но обычно нужны и другие люди, например, графический дизайнер. Это сильно зависит от характера вашего приложения.
  2. Немного круто, если у вас нет опыта работы с Objective-C и Какао. Знание C помогает, как и знание некоторых концепций объектно-ориентированного программирования и компьютерного языка. Даже в этом случае вы потратите некоторое время на то, чтобы привыкнуть к их образу действий. (Что обычно хорошо продумано, но часто отличается от того, что делают другие люди / языки / стеки.)
  3. Самая большая проблема, не связанная с программированием, - это сумасшедшая подготовка и обзор. Требуется время, чтобы привыкнуть ко всем профилям и сертификатам и подписывать вуду. Вы возненавидите его, но привыкнете.
  4. Продать приложение сложно. Вы должны либо быть одним из счастливчиков, чтобы попасть в рекомендуемые приложения на устройстве, либо у вас должен быть какой-то большой заголовок, либо ваше приложение должно быть чем-то с четкой аудиторией (например, геокэшинг), или у вас возникнут проблемы с получением достойный кофе за то, что вы зарабатываете. (Я здесь излишне упрощаю, но в основном это правда.) Сам процесс продажи в значительной степени безболезненный - 99 долларов в год, и Apple получает треть того, что вы зарабатываете.
12
ответ дан 29 November 2019 в 06:26
поделиться

Позвольте мне дать вам несколько советов по мере моей работы на JQTouch. Это библиотека, которая создается с использованием JQuery, а также предоставляет функции, связанные с мультитач. В основном это касается вещей, связанных с пользовательским интерфейсом. Взгляните на JQTOUCH и посмотрите примеры кода. Бизнес-логика может быть реализована с использованием любой серверной технологии по вашему выбору.

Подведение итогов с помощью соответствующих вопросов

  1. Усилия не так уж и трудны. Разработчикам легко разрабатывать. Меньше документации.
  2. Довольно простой
  3. Эмулятор можно загрузить с Эмуляторы
  4. Об этом мало знаний.
-1
ответ дан 29 November 2019 в 06:26
поделиться

Проблемы, которые у меня обычно возникают, включают:

  1. Неправильно сконфигурированные производственные параметры, будь то мои производственные файлы localsettings.py, wsgi / cgi или apache site в / etc / sites-available
  2. База данных различия. Я использую Юг для миграций и столкнулся с некоторыми тонкими проблемами при выполнении миграции на PostgreSQL, когда он работал без сбоев в sqlite.
  3. Хостинг статических файлов, поскольку я обманываю и использую сервер Django в разработке
  4. Разрешения как в файловой системе, так и в базе данных
  5. Редкие, но возможные проблемы с сетью, мешающие мне получить мои зависимости, будь то на PyPi или на стороннем сайте

Способы устранения этих проблем:

  • Используйте одну и ту же базу данных в производстве и разработке (в вашем случае MySQL везде)
  • Я обнаружил, что полезно иметь "тест" среда, которая имитирует производство всеми возможными способами (это может быть оборудование более низкого уровня или даже та же машина). Таким образом, если есть какие-либо проблемы в этой «производственной» среде, я могу решить их, не отключая свой производственный сервер.
  • Сценарий всего для повторяемых развертываний. Я использую ткань , но zc.buildout или Paver также подойдут. Эти инструменты помогают уменьшить количество опечаток при развертывании и сократить время развертывания моего приложения.
  • Используйте контроль версий (mercurial, git, subversion) и инструмент миграции схемы (например, South), чтобы, если что-то пойдет не так при развертывании в производственной среде , у вас есть возможность отменить изменения и разрешить производственной среде работать на старом коде со старой схемой базы данных.
  • Я еще не настроил « прокси-сервер яйца », но я учитывая это, Те, кто знаком с принципами разработки программного обеспечения, включая использование шаблонов проектирования и т. Д., Обнаружат, что SDK построен на основе всей общей абстракции, которую мы используем (за исключением очень небольшой части, все еще использующей процедурные API в стиле C).

    2) Обучение кривая крута для людей, которые катятся по ней самостоятельно, это действительно легко для людей, которых учат этому вопросу. Быстрого ознакомления с SDK и инструментами в стиле курса (скажем, всего 40 часов) обычно достаточно для того, чтобы люди стали достаточно опытными.

    3) Нет никаких проблем с оборудованием, которые нужно принимать во внимание, по крайней мере, по моему опыту. Как уже указывал Zoul, подготовка устройств требует времени, чтобы к ним привыкнуть. На мой взгляд, процесс представления / проверки немного проще.

    4) Продажа так же сложна, как и на других платформах. Но если у вас есть действительно блестящая идея, затем вы обычно продаете много копий своего программного обеспечения. Или идея может быть не такой блестящей, но разрабатываемое вами программное обеспечение имеет фундаментальное значение для конкретной области, нацеленной на людей, постоянно находящихся в движении и т. Д. Простая разработка чего-то без четкой цели - идеальный рецепт катастрофы.

3
ответ дан 29 November 2019 в 06:26
поделиться

Очень субъективно. Разработчик приложения из одного человека может разработать приложение среднего размера. Как много времени это займет? Зависит от того, сколько свободного времени у разработчика и сколько опыта работы с Obj-C.

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

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

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

Если вы спрашиваете, потому что продолжаете читать, это простая схема «обогащения», тогда Я бы сказал, вас ждет сюрприз. Несмотря на сокращение накладных расходов в некоторых областях и низкий начальный капитал, это столько же работы, сколько и любое другое предприятие по разработке программного обеспечения, поскольку соотношение членов команды к работе, которую предстоит выполнить, остается примерно таким же (экономия 2,99 доллара, 4,99 доллара или 9,99 доллара). apps заставляет вас иметь меньшую команду).

1
ответ дан 29 November 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: