Действительно ли разработка Android строга всегда как для iPhone?

Редактирование: я только что видел редактирование, чтобы разъяснить, что исходный вопрос был для сокращения повторений / код, и это - все хорошо и хороший как осуществление, но в реальных ситуациях Вы собираетесь хотеть самую быструю реализацию, независимо от того, как прохладный базовый LINQ смотрит.

Вот мой метод Utils для итерации через загруженные типы. Это обрабатывает регулярные классы, а также интерфейсы, и excludeSystemTypes опция ускоряет вещи чрезвычайно при поиске реализаций в собственном / сторонняя кодовая база.

public static List<Type> GetSubclassesOf(this Type type, bool excludeSystemTypes) {
    List<Type> list = new List<Type>();
    IEnumerator enumerator = Thread.GetDomain().GetAssemblies().GetEnumerator();
    while (enumerator.MoveNext()) {
        try {
            Type[] types = ((Assembly) enumerator.Current).GetTypes();
            if (!excludeSystemTypes || (excludeSystemTypes && !((Assembly) enumerator.Current).FullName.StartsWith("System."))) {
                IEnumerator enumerator2 = types.GetEnumerator();
                while (enumerator2.MoveNext()) {
                    Type current = (Type) enumerator2.Current;
                    if (type.IsInterface) {
                        if (current.GetInterface(type.FullName) != null) {
                            list.Add(current);
                        }
                    } else if (current.IsSubclassOf(type)) {
                        list.Add(current);
                    }
                }
            }
        } catch {
        }
    }
    return list;
}

Это не симпатично, я признаю.

39
задан Peter Mortensen 29 December 2009 в 09:26
поделиться

10 ответов

Нет! В этом прелесть Android. Несмотря на то, что есть эквивалент в AppStore, вы можете скачать приложение откуда угодно. Кроме того, он запрограммирован на Java, поэтому вам не нужно беспокоиться обо всех этих обыденных вещах, таких как сборка мусора (просто за счет скорости).

Не хочу оскорблять iPhone. Это также отличная платформа.


РЕДАКТИРОВАТЬ: Многие люди отмечали, что API iPhone не являются ограничительными, а скорее процесс утверждения. Это верно, однако API-интерфейсы iPhone все еще несколько ограничены, в том числе низкоуровневый доступ к оборудованию, фоновое управление (только уведомления в версии 3.0) и т. Д.

iPhone 3.0 - шаг в правильном направлении, но есть некоторая работа осталось сделать.

Кроме того, думали ли вы о создании программного обеспечения для iPhone от JB? Я не уверен в его доле на рынке, но я знаю много людей с взломанными устройствами.


РЕДАКТИРОВАТЬ: Я читал в некоторых других сообщениях по аналогичным вопросам, что Android Java может замедлить работу из-за сборщика мусора. Просто нужно остерегаться.

32
ответ дан 27 November 2019 в 02:25
поделиться

Если вы скажете, что iPhone ограничительный , я бы назвал Android незрелым .

В Android все еще есть много ошибок, которые вы неизбежно обнаружите столкнуться, если вы выполняете какие-то нетривиальные программы. Некоторые из них существуют только в эмуляторе, а другие - только на реальном телефоне.

Хотя, по моему опыту, разработка на Android с Eclipse выглядит так же хорошо, как и на iPhone с Xcode , если не лучше. Набор инструментов, предоставляемый Google, очень полный и кроссплатформенный. Сборщик мусора имеет огромное значение при программировании.

Я предполагаю, что у вас уже есть Mac, иначе iPhone вообще не подошел бы.

8
ответ дан 27 November 2019 в 02:25
поделиться

Есть некоторые ограничения ...

1
ответ дан 27 November 2019 в 02:25
поделиться

Разработка под iPhone не особо строгая. Получение полученного приложения в Apple App Store является ограничивающей частью.

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

7
ответ дан 27 November 2019 в 02:25
поделиться

Ну а Apple вообще открыта? Эээ .. эээ .. нет. Закрытое железо, закрытое ПО, закрытое все. Я думаю, что Алькатрас более открыт, чем Apple, по крайней мере, вы можете оставить там свою камеру.

Вы можете написать приложение для iPhone. Будет ли это одобрено? Ну не уверен. Они могли отрицать это по любой причине. Возможно, вы использовали синий фон, а Apple любит только белый и серый, поэтому это отрицает.

Однако в Android он полностью открыт. Вы можете разработать для него или даже разработать сам Android. Нет страха быть отвергнутым.

Но со всей серьезностью . У Apple большая доля рынка, миллионы людей пользуются и любят iPhone, и они, скорее всего, не уйдут еще долгое время. С другой стороны, Android был для T-Mobile. Кто-нибудь вообще пользуется T-Mobile?

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

2
ответ дан 27 November 2019 в 02:25
поделиться

«Ограничение» может означать две вещи:

  1. Возможность установить все, что угодно. Google очень хорош в этом, Nokia где-то посередине, а Apple - худшее
  2. . Что вы можете сделать с вашим приложением. Все они имеют произвольные ограничения на то, что вы можете и чего не можете делать, но мне кажется, что Nokia - наименее ограничивающая, Google и Apple - наихудшие (опять же).

YMMV

0
ответ дан 27 November 2019 в 02:25
поделиться

Нет, вы можете подписать приложение самостоятельно и распространить полученный файл APK через свой веб-сервер или другими способами.

0
ответ дан 27 November 2019 в 02:25
поделиться

Да, Android действительно открыт, и вы можете публиковать все, что хотите, на Market Place Но:

  1. вам все равно нужно научиться подписывать свое приложение и учитывать технические требования к размещению на рынке (например, сохранение правильных идентификаторов версий и т. Д.)

  2. , если вы действительно хотите получить / отправить пакет от / кому угодно, затем получатель пакета (так называемый APK-файл должен знать, как использовать инструмент командной строки под названием adb, чтобы управлять своим телефоном, устанавливать и удалять приложения. Это довольно просто сделать, но у вас должны быть установлены драйверы Android и инструменты SDK .

Чтобы быть справедливым по отношению к модели разработки для iPhone, вы также можете довольно легко распространять тестовые версии своего приложения, хотя, возможно, не так легко, как с Android . Ваши тестировщики должны предоставить вам специальный идентификатор устройства, который они получают из iTunes, когда устройство подключено, а затем вы создаете файл лицензии, содержащий ключи для всех ваших тестеров, который вы распространяете вместе с каталогом выпуска вашего приложения. Затем пользователи устанавливают ваше приложение через iTunes.

0
ответ дан 27 November 2019 в 02:25
поделиться

Существует множество аспектов, которые следует учитывать в отношении относительной ограниченности двух платформ.

Маркет

Android Маркет, несомненно, менее строг, чем App Store, когда дело доходит до процесса отправки. Плюс в том, что вы можете получить практически все, что захотите, в Android Market. Обратной стороной является то, что вы можете получить практически все, что захотите, в Android Market (рынок, наводненный спам-«приложениями» , в некотором смысле является ограничением).

Большой минус со стороны iPhone - это то, что ваши возможности по установке приложений, которых нет в App Store, ограничены - вы можете либо распространять приложение как бета-версию (до 100 пользователей), либо делать джейлбрейк своего iPhone. Android, однако, позволяет вам устанавливать приложения из любого места, включая веб-страницу.

Приложения

Одна из основных философий проектирования платформы Android - «Все приложения созданы одинаково», что должно означать, что вы можете свободно заменять приложения на телефоне на стороннюю версию. На практике это не так, поскольку многие приложения Google либо обладают специальными возможностями, недоступными для большинства приложений (см. Android Market), либо используют недокументированные / собственные API-интерфейсы (см .: Календарь ).

iPhone, с другой стороны, не делает таких заявлений о равенстве, и позиция Apple в целом такова: «Есть только один способ сделать это, и это путь Apple». Кроме того, сторонние приложения iPhone могут не работать в фоновом режиме, в то время как приложения Android могут. Новым в iPhone OS 4.0 является возможность приложений работать в фоновом режиме . В настоящее время приложения iPhone могут делать то, чего не могут приложения Android, - это получать push-уведомления. Новым в Android 2.2 является возможность приложений получать push-уведомления через нечто, называемое Android Cloud .

Источник

Android является открытым исходным кодом - в основном (некоторые компоненты прошивки являются закрытыми). Тем не менее, есть некоторая ракетная наука, связанная только с компиляцией кодовой базы Android . Кроме того, Google отправил приказы о прекращении и воздержании для распространения пользовательских изображений, которые включают Android Market и приложение Google Maps.

iPhone является полностью закрытым исходным кодом, и недавние изменения в соглашении с разработчиками вызвали споры, поскольку они требуют, чтобы все приложения, представленные в магазине приложений, были изначально написаны на «Objective-C, C, C ++ или JavaScript как выполняется механизмом iPhone OS WebKit, и только код, написанный на C, C ++ и Objective-C, может компилироваться и напрямую связываться с Документированными API »

SDK

Android SDK можно бесплатно загрузить ; для загрузки iPhone SDK требуется бесплатная регистрация пользователя . Разработка под Android может выполняться под Mac OS X, Windows или Linux, а разработка под iPhone возможна только под Mac OS X. Вы ' Вам также нужно будет заплатить за учетную запись разработчика iPhone за 99 долларов, если вы хотите протестировать свое программное обеспечение на реальном устройстве (а не на симуляторе).

База пользователей

И, наконец, что не менее важно, база пользователей. Когда этот ответ был первоначально написан, iPhone имел гораздо большую базу пользователей и рос намного быстрее, чем Android. Это меняется, поскольку Android начинает поддерживать несколько операторов связи и аппаратных платформ (см. Open Handset Alliance ). Список устройств под управлением Android сейчас довольно длинный, хотя ни одно из них еще не сравнится по популярности с iPhone.

Некоторые аналитики теперь сообщают, что Android превосходит iPhone, и предсказывают, что Android скоро обгонит iPhone по доле рынка. Другие аналитики считают, что Apple наверстает упущенное с выпуском iPhone 4g.

34
ответ дан 27 November 2019 в 02:25
поделиться

В большинстве случаев нет, но Google разрешил оператору связи и изготовителю устройства ограничивать определенные действия. Операторам разрешено блокировать отдельные приложения. Также перевозчики / производители могут препятствовать определенным функциям устройства.

Одним из примеров является Motorola Backflip, он не позволяет устанавливать неофициальные рыночные приложения. Также некоторые телефоны не имеют доступа к Официальному рынку.

0
ответ дан 27 November 2019 в 02:25
поделиться
Другие вопросы по тегам:

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