Как создать приложение для ios на windows
Перейти к содержимому

Как создать приложение для ios на windows

  • автор:

Разработка под iOS на Windows без компьютера Mac возможна?

Сложилась непростая ситуация. Вдруг понадобилось написать небольшое приложение под iOS, но не тут-то было. Загрузил Xamarin, установил необходимые компоненты и тут ступор, при открытии Main.storyboard моего проекта пишет мне:

The iOS Designer requires an active connection to the Mac server

Собственно говоря сам скриншот сообщения: введите сюда описание изображения Ну, соответственно если нажать ссылку Connect Mac Server , то в последующих окнах он просит IP-адрес или имя Mac-устройства: введите сюда описание изображения Понятное дело, что приложения под iOS не могут быть созданы без компилятора от Apple. Mac-компьютера у меня нет, поэтому вариант покупки и аренды отпадает. Как я могу скомпилировать приложение под iOS? Из устройств от Apple имеется iPad и iPhone — это как-то может помочь? Может быть есть какой-нибудь общедоступный Mac Server?

Отслеживать
Denis Bubnov
задан 9 фев 2017 в 20:36
Denis Bubnov Denis Bubnov
14k 13 13 золотых знаков 38 38 серебряных знаков 63 63 бронзовых знака

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Всё получится, нужно установить MacOS на виртуалку (у меня стоит под VM Ware Workstation Pro 12), там нужно установить и настроить XCode. Все тулы кроссплатформ разработки генерят XCode-проект, который уже в XCode нужно открывать, собирать, устанавливать на устройства и т.д.

Только вам еще придется оформить подписку Apple Developer ($100 в год), разобраться с регистрацией устройств и приложений, созданием профайлов и сертификатов на developer.apple.com — желательно чтобы кто-то помогал 🙂 Не стоит заблуждаться, что это придется сделать только в случае, если вы хотите публиковать на AppStore — это не так, без сертификата Apple Developer там чихнуть не сможете

Если $100 и так есть где пропить, тогда надо жестоко ломать всё — устройства и Xcode

Отслеживать
ответ дан 11 июн 2017 в 1:43
Eugene Bartosh Eugene Bartosh
2,066 10 10 серебряных знаков 28 28 бронзовых знаков

А какую версию системы вы установили? Нет случайно инструкции по установке? По поводу регистрации в Apple Developer — это ни к чему, проект будет без публикации для себя ��

11 июн 2017 в 6:36

устанавливал еще Yosemite, взял просто чей-то готовый образ на rutracker.ru — потом разумеется апгрейдил, сейчас она самая новая. А по поводу подписки на Apple Developer — вы заблуждаетесь, без сертификата разработчика вы там чихнуть не сможете, не говоря уже чтобы «собрать для себя» — это Apple, детка ))

Как сделать приложение для iOS без макбука

3570 05-02-20 Время чтения: 5 мин

Корпорация Apple регулярно радует свою многомиллионную армию поклонников очередными технологическими новинками, и мобильные устройства от «яблочного» производителя успешно реализуются по всему миру. Одной из главных особенностей устройств от Apple является собственная операционная система – iOS, причем для разных категорий товаров существуют свои адаптации этой ОС.

Благодаря популярности iPhone и других устройств американского гиганта, вырос спрос и на приложения, заточенные под них и iOS. Но в чем особенность механизма создания таких приложений, какие существуют ограничения и подводные камни?

Особенности разработки iOS приложений

Перед тем, как говорить о разработке программ под iOS, сразу оговоримся, что далее речь пойдет именно о нативных (родных) приложениях, позволяющих использовать весь функционал и производительность устройств Apple. Сравнительно недавно для написания кода успешно использовался язык программирования Objective-C, созданный еще в 80-х годах. Вместе с многими достоинствами (высокий уровень поддержки кода, полная совместимость с языком Swift, большая обучающая база и много справочной литературы) данный язык имеет и существенные недостатки, включая сложность освоения, сравнительно низкую производительность, низкий уровень читабельности кода.

Летом 2014 года компания Apple презентовала новый язык программирования Swift, который сейчас и можно назвать основным для написания программ под iOS. Этот язык также является объектно-ориентированным, может похвастаться повышенной безопасностью, поддержкой динамических библиотек, легкой читаемостью кода и отличной скоростью. Соответственно, для создания приложения под устройства Apple необходимо знать хотя бы один из этих двух языков. Кроме этого, необходимо понимать принципы оформления и размещения элементов программ, разбираться в последних тенденциях в мире мобильных разработок и уметь правильно продвигать созданный продукт. Жизненно необходимо и наличие Mac, без которого разрабатывать iOS-приложения крайне проблематично, о чем поговорим чуть позже.

XCode

Среда разработки

Огромную помощь в процессе создания приложений разработчикам оказывают среды разработки – Integrated Development Environmetn или просто IDE. Корпорация Apple в свое время выпустила довольно удобную, практичную и, что немаловажно, сравнительно простую в освоении IDE Xcode. Ее можно скачать из App Store, причем бесплатно. Разработчик получает прекрасный редактор с большим набором полезных инструментов. Результат трудов можно протестировать с помощью встроенного симулятора без необходимости установки приложения на то или иное устройство. При этом разработчик может собирать программу сразу на устройство с iOS.

В Xcode предусмотрен отладчик, позволяющий находить ошибки в верстке, всевозможные баги и устранять их. Swift Playground позволяет проверять на ошибки отдельные алгоритмы или даже отдельные строчки кода без необходимости создания всего приложения. Для работы с картами в данной IDE предусмотрена функция имитации геолокации с возможностью добавления городов и использования уже «вшитых». Отдельного внимания заслуживает приложение Interface Builder, интегрированное в Xcode. IB включает в себя немало полезных инструментов, упрощающих процесс создания графических интерфейсов и делающих верстку более наглядной. И это далеко не весь инструментарий Xcode, с которым работают разработчики.

Hackintosh

Хакинтош или Mac?

Разрабатывать приложения для богатой линейки устройств под управлением iOS можно только на компьютерах от Apple с установленной macOS. На такие устройства можно установить IDE Xcode, тогда как на компьютеры с другими системами этого сделать невозможно. Поэтому всем тем, кто хочет создавать iOS-приложения, необходимо позаботиться о наличии MacBook в любых его вариациях. Однако продукция Apple стоит традиционно дорого и далеко не все разработчики, особенно новички, могут позволить себе подобный компьютер. Один из выходов в сложившейся ситуации – установка виртуальной машины на обычный ПК, которая будет имитировать работу macOS и позволит разрабатывать необходимые программы.

Еще одним популярным способом обхода «яблочной» политики относительно установки macOS только на свою продукцию является создание так называемого хакинтоша. Само название красноречиво говорит нам, что это «хакнутый» или взломанный вариант Макинтоша. То есть, хакинтошем может быть любой компьютер не от компании Apple, на котором установлена операционная система macOS. Однако создать свой хакинтош не так просто, поскольку это идет вразрез с правообладателем и требует от специалиста высокой квалификации и мастерства. Да, после вложения некоторой суммы денег, изучения многочисленных инструкций в сети и экспериментов можно создать свой хакинтош, но рассматривать его можно только в качестве временного заменителя оригинального Mac для знакомства с системой и процессом разработки программ.

Создание мобильных приложений для iOS

Необходимо ли наличие устройства Apple?

При разработке приложений на iOS на Mac, виртуальной машине или хакинтоше с использованием IDE Xcode программисты имеют возможность тестировать свои разработки на симуляторе устройств. Данная среда разработки позволяет выбирать необходимое устройство из перечня продукции Apple, что довольно удобно. Благодаря этому можно обойтись даже без реального устройства, однако для большего комфорта и лучшей оценки результата трудов опытные мастера рекомендуют не ограничиваться лишь виртуальным симулятором и проверять работу приложений вживую. К тому же, в симуляторе существует целый ряд ограничений, включая отсутствие акселерометра и камеры, поэтому обойтись без реального iOS-устройства будет точно непросто.

В mobile-студии KitApp не только прекрасно знают обо всех особенностях разработки приложений для iOS, но и успешно применяют свои навыки в течение многих лет на практике, создавая приложения разного уровня сложности. Наши мастера постоянно совершенствуют свои знания и изучают новинки в индустрии, поэтому клиенты могут быть на все 100% уверены в том, что созданное у нас приложение будет полностью соответствовать всем современным вызовам и требованиям.

7 способов создания приложений для iPhone на Windows

Какое-то время назад я решил привести пару способов создания приложения для iPhone и iPad, доступных на Windows. Сейчас эта тема всё ещё актуальна. Так что я решил дополнить этот список и включить некоторые другие способы, появившиеся после написания первого сообщения, и те, которые всё ещё находятся в разработке, но уже привлекают, кажутся интересными. Обратите внимание на то, что официальных программ под Windows для разработки приложений на iPhone не существует (и они вряд ли когда-нибудь появятся).

На данной стадии если вы хотите выложить своё приложение в iPhone AppStore от Apple, то вам придётся компилировать его на официальном ПО для iPhone, которое доступно для Mac OS X, использовать Flash’s iPhone Packager, Airplay SDK, либо отправить кому-нибудь свой код для компилирования. Сейчас же, я знаю, есть одно «хакинтошское» решение, но я не буду о нём рассказывать, не только потому, что оно, возможно, нелегальное, но я видел того, кто попробовал так делать. и это превратилось в долгую мороку — на каждое обновление ОС и SDK уходили часы, когда они могли просто купить Mac Mini меньше чем за $700 и не мучиться.

Говорят, что есть способы разработки приложений для iPhone на Windows. Повторюсь, что никакого издания официального SDK для iOS не существует — и я более чем уверен, что не существует никаких официальных способов, несмотря на все маркетинговые речи, которые произносят некоторые продавцы. Если вы увидите, как какой-нибудь продавец утверждает, что их продукт — это официальный SDK для разработки приложений для iPhone на Windows, мой вам совет: держитесь от него подальше.

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

Данные альтернативы для Windows включают игровые движки, html/javascript решения для создания гибридных приложений, а также обычные программы для создания приложений для iPhone/iPad.

Способы создания приложений для iPhone на Windows

  1. Flash CS5.5 — является очень хорошим решением совместно с Flash iPhone Packager. Упаковщик для iOS позволяет компилировать приложения на платформе Windows. Если вы уже использовали Флэш, то вы являетесь обладателем новейших стандартов Apple. Он хорошо работает, однако не ждите, что игры с высокими техническими требованиями, а также Papervision на нём запустятся. Наличие компьютера с Mac не требуется. Кто-то спрашивал, возможно ли создание iOS флэш-приложений в среде, отличной от официальной среды Adobe. безусловно, вы можете компилировать приложения с помощью компилятора Flex и упаковывать их до тех пор, пока вы следуете рекомендациям ASME.
  2. Airplay SDK — Airplay SDK позволяет вам создавать игры и подписывать свои приложения на Windows. Отличное решение как для 2D, так и для 3D игр и приложений, благодаря бесплатному предложению от независимых разработчиков.
    Оба этих варианта могут компилировать стандартный код iPhone прямо на вашей Windows. Большое количество приложений, доступных в AppStore, было создано с их помощью.
  3. Unity 3D — игровой движок и редактор, использующий Boo и C# и работающий как на Windows, так и на Mac.
  4. Stonetrip S3D — игровой движок и редактор, использующий LUA и работающий на Windows.
    Эти игровые движки позволяют вам создавать приложения на Windows, однако для их тестирования/компилирования вам потребуется Mac.
  5. Appcelerator Titanium — Хорошее решение, имеющее довольно широкую и живую аудиторию. Приложения не требуют высокой производительности, так как они создаются с использованием html/javascript и могут быть скомпилированы как стандартные приложения и отсылаться в AppStore.
  6. Genuitec MobiOne — это создатель интерфейса, который использует фреймворк PhoneGap для обеспечения стандартной функциональности. Он работает только на Windows и базируется на HTML/Javascript.
    Данные способы позволяют создавать приложения с помощью web-технологий (HTML/CSS/Javascript) и в последствии запускать их через Objective-C фреймворк, который отвечает на действия в UIWebView, тем самым предоставляя вам доступ к стандартной функциональности на iPhone. Эти фреймворки бесплатные. Для стандартного тестирования/компиляции потребуется Mac.
  7. Dragonfire SDK — Интересный способ, позволяющий создавать приложения, использующие их собственные SDK на Windows. Далее вы отправляете им свой исходный код, который они компилируют, и вы скачиваете уже готовый файл iOS приложения. Вы загружаете свой код для компилирования на их сервер (при условии, что у вас стоит версия Ultimate). Я его упомянул, так как мне нравится его синтакс, и он довольно популярен, а также является хорошим упаковщиком с удачным симулятором на Windows.

Существует ещё пара других решений, которые либо ещё тестируются, либо являются платными без каких-либо trial-версий (или даже в некоторых случаях без скриншотов), либо просто ещё не вышли. Многие из них, по-видимому, являются упрощёнными версиями Dragonfly SDK, который позволяет разрабатывать iPhone приложения на Windows путём компилирования вашего исходного кода.. Airplay SDK, возможно, на данный момент является наиболее продвинутым «iOS ПО для Windows», доступным бесплатно.

Разработка приложений для iPhone на Windows уже реальна

Если вы действительно решили создавать приложения для iPhone на Windows и даже не хотите покупать Mac Mini, то советую вам использовать html/javascript программы, такие как PhoneGap/Appcelerator либо Airplay SDK, а затем найти кого-нибудь с Mac и попросить их вам помочь. Airplay SDK является единственным бесплатным решением для Windows для создания высококлассных игр на iPhone/iPad. Вы можете использовать Флэш-разработчик, но на данный момент у него имеются ограничения в качестве. Однако скоро выйдет новая версия.

Обновление: к сожалению, Airplay SDK был переименован в Marmalade SDK и больше не доступен бесплатно независимым разработчикам.

Краткое руководство по приложению «Привет, iOS»

Поддержка конструктора iOS была прекращена в Visual Studio 2019 версии 16.8 и Visual Studio 2019 для Mac версии 8.8. В Visual Studio 2019 версии 16.9 и Visual Studio для Mac версии 8.9 этот конструктор удален. Создавать пользовательские интерфейсы iOS рекомендуется непосредственно на Mac с помощью Xcode Interface Builder. Дополнительные сведения см. в статье Проектирование пользовательских интерфейсов с помощью Xcode.

Это руководство описывает создание приложения, которое преобразует введенный пользователем буквенно-цифровой телефонный номер в числовой телефонный номер и затем набирает его. Окончательный вариант приложения выглядит примерно так:

Приложение краткого руководства по Hello.iOS

Требования

Для разработки на iOS с помощью Xamarin требуется следующее:

  • Компьютер Mac под управлением macOS High Sierra 10.13 или последующей версии.
  • Последняя версия Xcode и пакета SDK iOS из App Store.

Xamarin.iOS работает со следующими конфигурациями:

  • Последняя версия Visual Studio для Mac, удовлетворяющая указанным выше требованиям.

Xamarin.iOS работает со следующими конфигурациями:

  • Последняя версия Visual Studio 2019 или Visual Studio 2017 Community, Professional или Enterprise на базе Windows 10 или более поздней версии, связанная с узлом сборки Mac, удовлетворяющим указанным выше требованиям.

Пошаговое руководство по Visual Studio для Mac

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

  1. Запустите Visual Studio для Mac из папки Applications (Приложения) или из Spotlight: Экран запускаНа экране запуска нажмите кнопку Новый проект. , чтобы создать новое решение Xamarin.iOS: Решение iOS
  2. В диалоговом окне Новое решение выберите шаблон Приложение с одним представлением для > iOS>, чтобы выбрать C#. Нажмите кнопку Далее: Выбор приложения одного представления
  3. Настройте приложение. Присвойте ему имя Phoneword_iOS и оставьте все остальные значения по умолчанию. Нажмите кнопку Далее: Ввод имени приложения
  4. Оставьте имеющееся имя для проекта и решения. Выберите расположение проекта или оставьте значение по умолчанию: Выбор расположения проекта
  5. Нажмите кнопку Создать, чтобы создать Решение.
  6. Откройте файл Main.storyboard, дважды щелкнув его на Панели решения. Убедитесь, что вы открыли файл с помощью Designer Visual Studio iOS (щелкните правой кнопкой мыши раскадровки и выберите пункт Открыть с > iOS Designer). Это позволяет создавать пользовательский интерфейс визуально: Конструктор iOSОбратите внимание на то, что классы размера включены по умолчанию. Чтобы узнать о них подробнее, см. руководство по унифицированным раскадровкам.
  7. Откройте панель элементов, введите «метка» в поле поиска и перетащите элемент Метка в область конструктора (в центре): Перетаскивание элемента

Примечание Панель свойств или панель элементов можно открыть в любое время, перейдя к панели просмотра>.

  • Используя маркеры перетаскивания элементов управления (кружки вокруг элемента управления), сделайте метку шире: Увеличение ширины метки
  • Выбрав элемент Метка в области конструктора, используйте Панель свойств, чтобы изменить свойство Текст элемента Метка на «Enter a Phoneword» (Введите слово-номер): Установка метки для ввода слова-номера
  • Выполните поиск строки «текстовое поле» на панели элементов и перетащите элемент Текстовое поле с панели элементов в область конструктора, поместив его под элементом Метка. Измените ширину, чтобы элемент Текстовое поле был такой же ширины, что и Метка: Выравнивание ширины текстового поля и метки
  • Выбрав элемент Текстовое поле в области конструктора, измените для текстового поля свойство Имя в разделе «Удостоверение» на панели свойств, указав новое значение PhoneNumberText , а для свойства Текст введите «1-855-XAMARIN»: Изменение значения свойства
  • Перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под элементом Текстовое поле. Настройте ширину элемента Кнопка, чтобы выровнять его с элементами Текстовое поле и Метка: Настройка ширины элемента
  • Выбрав элемент Кнопка в области конструктора, измените свойство Имя в разделе УдостоверениеПанели свойств на TranslateButton . Измените значение свойства Заголовок на «Translate» (Преобразовать): Изменение значения свойства
  • Повторите два предыдущих действия, перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под первым элементом Кнопка. Настройте ширину элемента Кнопка, чтобы выровнять его с первым элементом Кнопка: Настройка ширины элемента
  • Выбрав второй элемент Кнопка в области конструктора, измените свойство Имя в разделе УдостоверениеПанели свойств на CallButton . Измените значение свойства Заголовок на «Call» (Вызов): Изменение значения свойства Сохраните изменения, перейдя к файлу > Сохранить или нажав клавиши ⌘+s.
  • В приложение нужно добавить логику для преобразования телефонных номеров из буквенно-цифровых в цифровые. Добавьте новый файл в Проект, щелкнув правой кнопкой мыши Phoneword_iOS Проект на панели решения и выбрав Добавить > новый файл. или нажав клавиши ⌘+n: Добавление нового файла в проект
  • В диалоговом окне Новый файл выберите Общие > Пустой класс и присвойте новому файлу PhoneTranslator имя : Выбор параметра
  • Создается пустой класс C#. Удалите код шаблона и замените его следующим:

    using System.Text; using System; namespace Phoneword_iOS < public static class PhoneTranslator < public static string ToNumber(string raw) < if (string.IsNullOrWhiteSpace(raw)) < return ""; >else < raw = raw.ToUpperInvariant(); >var newNumber = new StringBuilder(); foreach (var c in raw) < if (" -0123456789".Contains(c)) < newNumber.Append(c); >else < var result = TranslateToNumber(c); if (result != null) < newNumber.Append(result); >> // otherwise we've skipped a non-numeric char > return newNumber.ToString(); > static bool Contains (this string keyString, char c) < return keyString.IndexOf(c) >= 0; > static int? TranslateToNumber(char c) < if ("ABC".Contains(c)) < return 2; >else if ("DEF".Contains(c)) < return 3; >else if ("GHI".Contains(c)) < return 4; >else if ("JKL".Contains(c)) < return 5; >else if ("MNO".Contains(c)) < return 6; >else if ("PQRS".Contains(c)) < return 7; >else if ("TUV".Contains(c)) < return 8; >else if ("WXYZ".Contains(c)) < return 9; >return null; > > > 

    Добавление кода для подключения пользовательского интерфейса

    Сохраните файл PhoneTranslator.cs и закройте его.

  • Добавьте код для подключения пользовательского интерфейса. Для этого дважды щелкните файл ViewController.cs на Панели решения, чтобы открыть его:
  • Начните с подключения TranslateButton . Найдите метод ViewDidLoad в классе ViewController и добавьте следующий код под вызовом base.ViewDidLoad() :

    string translatedNumber = ""; TranslateButton.TouchUpInside += (object sender, EventArgs e) => < // Convert the phone number with text to a number // using PhoneTranslator.cs translatedNumber = PhoneTranslator.ToNumber( PhoneNumberText.Text); // Dismiss the keyboard if text field was tapped PhoneNumberText.ResignFirstResponder (); if (translatedNumber == "") < CallButton.SetTitle ("Call ", UIControlState.Normal); CallButton.Enabled = false; >else < CallButton.SetTitle ("Call " + translatedNumber, UIControlState.Normal); CallButton.Enabled = true; >>; 
     CallButton.TouchUpInside += (object sender, EventArgs e) => < // Use URL handler with tel: prefix to invoke Apple's Phone app. var url = new NSUrl ("tel:" + translatedNumber); // . otherwise show an alert dialog if (!UIApplication.SharedApplication.OpenUrl (url)) < var alert = UIAlertController.Create ("Not supported", "Scheme 'tel:' is not supported on this device", UIAlertControllerStyle.Alert); alert.AddAction (UIAlertAction.Create ("Ok", UIAlertActionStyle.Default, null)); PresentViewController (alert, true, null); >>; 
  • Сохраните изменения, а затем выполните сборку приложения, выбрав Сборка > все или нажав клавиши ⌘+B. Если приложение компилируется, в верхней части интегрированной среды разработки появится сообщение об успешном выполнении: Отображение сообщения об успешном выполнении в верхней части интегрированной среды разработкиПри наличии ошибок просмотрите предыдущие шаги и исправьте все ошибки, пока сборка приложения не будет проходить успешно.
  • Наконец, протестируйте приложение в симуляторе iOS. В верхнем левом углу интегрированной среды разработки выберите значение Отладка в первом раскрывающемся списке и iPhone XR iOS 12.0 или другой доступный симулятор во втором, а затем нажмите кнопку Запустить (треугольная кнопка, которая напоминает кнопку воспроизведения): Выберите симулятор и нажмите

    Примечание Сейчас, в связи с требованиями Apple, при создании кода для устройства или симулятора может потребоваться сертификат разработки или удостоверение подписывания. Чтобы настроить их, следуйте указаниям в руководстве по подготовке устройств.

  • В результате приложение запускается в симуляторе iOS: Выполнение приложения в симуляторе iOSСимулятор iOS не поддерживает телефонные звонки; при попытке выполнить вызов отображается диалоговое окно предупреждения: Диалоговое окно предупреждения при попытке выполнения вызова
  • Пошаговое руководство по Visual Studio

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

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

    Прежде чем продолжить работу с пошаговым руководством, вам нужно подключиться к компьютеру Mac из Visual Studio. Это вызвано тем, что Xamarin.iOS использует инструменты Apple при сборке и запуске приложений. Настройка описана в инструкциях из руководства по связыванию с компьютером Mac.

    1. Запустите Visual Studio из меню Пуск: Начальный экранСоздайте решение Xamarin.iOS, выбрав Файл > Создать > проект. > Visual C# > iPhone & iPad > iOS App (Xamarin):Выбор типа проекта приложения iOS (Xamarin)В следующем диалоговом окне выберите шаблон Приложение с одним представлением и нажмите OK, чтобы создать проект: Выбор шаблона проекта с одним
    2. Убедитесь, что значок агента Mac Xamarin на панели инструментов отображается зеленым цветом. Убедитесь, что значок агента Mac Xamarin на панели инструментов отображается зеленым цветомЕсли это не так, то есть отсутствует подключение к компьютеру сборки Mac, выполните инструкции из руководства по выбору конфигурации, чтобы настроить подключение.
    3. Откройте файл Main.storyboard в конструкторе iOS, дважды щелкнув его в обозревателе решений: Конструктор iOS
    4. Откройте вкладку Панель элементов, введите «метка» в поле поиска и перетащите элемент Метка в область конструктора (в центре): Перетаскивание элемента
    5. Захватите маркеры перетаскивания и растяните метку в стороны: Увеличение ширины метки
    6. Выбрав элемент Метка в области конструктора, используйте окна свойств, чтобы изменить свойство Текст элемента Метка на «Enter a Phoneword» (Введите слово-номер): Измените свойство Text объекта Label на Ввод phoneword

    Примечание Вы можете открыть Свойства или Панель элементов в любое время. Для этого перейдите в меню Вид.

  • Выполните поиск строки «текстовое поле» на панели элементов и перетащите элемент Текстовое поле с панели элементов в область конструктора, поместив его под элементом Метка. Измените ширину, чтобы элемент Текстовое поле был такой же ширины, что и Метка: Настройка ширины элемента
  • Выбрав элемент Текстовое поле в области конструктора, измените егосвойствоИмя в разделе «Удостоверение» свойств на PhoneNumberText , а также измените свойство Текст на «1-855-XAMARIN»: Изменение значения свойства
  • Перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под элементом Текстовое поле. Настройте ширину элемента Кнопка, чтобы выровнять его с элементами Текстовое поле и Метка: Настройка ширины элемента
  • Выбрав элемент Кнопка в области конструктора, измените свойство Имя в разделе Удостоверениесвойств на TranslateButton . Измените значение свойства Заголовок на «Translate» (Преобразовать): Изменение значения свойства
  • Повторите два предыдущих действия, перетащите элемент Кнопка из панели элементов в область конструктора и поместите его под первым элементом Кнопка. Настройте ширину элемента Кнопка, чтобы выровнять его с первым элементом Кнопка: Настройка ширины элемента
  • Выбрав второй элемент Кнопка в области конструктора, измените свойство Имя в разделе Удостоверениесвойств на CallButton . Измените значение свойства Заголовок на «Call» (Вызов): Изменение значения свойства Сохраните изменения, выбрав Файл > Сохранить все или нажав клавиши CTRL+s.
  • Добавьте код, который преобразует телефонные номера из буквенно-цифровой записи в цифровую. Для этого сначала добавьте новый файл в проект, щелкнув правой кнопкой мыши проект Phoneword в Обозреватель решений и выбрав Добавить > новый элемент. или нажав клавиши CTRL+SHIFT+A: Добавьте код, который преобразует телефонные номера из буквенно-цифровой записи в цифровую
  • В диалоговом окне Добавление нового элемента (щелкните проект правой кнопкой мыши, выберите Добавить > новый элемент. ) выберите Класс Apple > и присвойте новому файлу PhoneTranslator имя : Добавление нового класса с именем PhoneTranslator

    Важно! Убедитесь, что выбран шаблон класса, в значке которого указан C#. В противном случае ссылка на этот класс может быть невозможна.

    using System.Text; using System; namespace Phoneword < public static class PhoneTranslator < public static string ToNumber(string raw) < if (string.IsNullOrWhiteSpace(raw)) < return ""; >else < raw = raw.ToUpperInvariant(); >var newNumber = new StringBuilder(); foreach (var c in raw) < if (" -0123456789".Contains(c)) < newNumber.Append(c); >else < var result = TranslateToNumber(c); if (result != null) < newNumber.Append(result); >> // otherwise we've skipped a non-numeric char > return newNumber.ToString(); > static bool Contains (this string keyString, char c) < return keyString.IndexOf(c) >= 0; > static int? TranslateToNumber(char c) < if ("ABC".Contains(c)) < return 2; >else if ("DEF".Contains(c)) < return 3; >else if ("GHI".Contains(c)) < return 4; >else if ("JKL".Contains(c)) < return 5; >else if ("MNO".Contains(c)) < return 6; >else if ("PQRS".Contains(c)) < return 7; >else if ("TUV".Contains(c)) < return 8; >else if ("WXYZ".Contains(c)) < return 9; >return null; > > > 

    Добавление логики для обработки взаимодействия с кнопками

    Сохраните файл PhoneTranslator.cs и закройте его.

  • Дважды щелкните файл ViewController.cs в обозревателе решений, чтобы открыть его и добавить логику, обрабатывающую взаимодействие с кнопками:
  • Начните с подключения TranslateButton . В классе ViewController найдите метод ViewDidLoad . Добавьте следующий код кнопки в ViewDidLoad , под вызовом base.ViewDidLoad() :

    string translatedNumber = ""; TranslateButton.TouchUpInside += (object sender, EventArgs e) => < // Convert the phone number with text to a number // using PhoneTranslator.cs translatedNumber = PhoneTranslator.ToNumber(PhoneNumberText.Text); // Dismiss the keyboard if text field was tapped PhoneNumberText.ResignFirstResponder (); if (translatedNumber == "") < CallButton.SetTitle ("Call", UIControlState.Normal); CallButton.Enabled = false; >else < CallButton.SetTitle ("Call " + translatedNumber, UIControlState.Normal); CallButton.Enabled = true; >>; 
    CallButton.TouchUpInside += (object sender, EventArgs e) => < var url = new NSUrl ("tel:" + translatedNumber); // Use URL handler with tel: prefix to invoke Apple's Phone app, // otherwise show an alert dialog if (!UIApplication.SharedApplication.OpenUrl (url)) < var alert = UIAlertController.Create ("Not supported", "Scheme 'tel:' is not supported on this device", UIAlertControllerStyle.Alert); alert.AddAction (UIAlertAction.Create ("Ok", UIAlertActionStyle.Default, null)); PresentViewController (alert, true, null); >>; 
  • Сохраните изменения, а затем выполните сборку приложения, выбрав Сборка > решения или нажав клавиши CTRL+SHIFT+B. Если приложение компилируется, в нижней части интегрированной среды разработки появится сообщение об успешном выполнении: Отображение сообщения об успешном выполнении в нижней части интегрированной среды разработкиПри наличии ошибок просмотрите предыдущие шаги и исправьте все ошибки, пока сборка приложения не будет проходить успешно.
  • Наконец, протестируйте приложение в удаленном симуляторе iOS. На панели инструментов интегрированной среды разработки выберите Отладка и iPhone 8 Plus iOS x.x в раскрывающихся меню и щелкните значок Запустить (зеленый треугольник, похожий на кнопку воспроизведения): Нажатие кнопки
  • В результате приложение запускается в симуляторе iOS: Выполнение приложения в симуляторе iOSСимулятор iOS не поддерживает телефонные звонки; при попытке выполнить вызов отображается диалоговое окно предупреждения: Диалоговое окно предупреждения, отображаемое при попытке выполнения вызова
  • Поздравляем! Вы создали свое первое приложение Xamarin.iOS!

    Пришло время закрепить и углубить приобретенные знания и навыки с помощью раздела Привет, iOS: теперь подробнее.

    Связанные ссылки

    • Значки приложения Xamarin и изображения при запуске (пример)
    • Привет, iOS (пример)
    • Рекомендации по работе с человеческим интерфейсом iOS
    • Портал подготовки iOS

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *