Всем привет!
Буквально пару дней назад компания Apple анонсировала новый язык Swift - и выпустила английскую документацию по нему.
Сейчас эта документация переводится на русский язык.
Тур по языку и русские уроки по Swift доступны здесь: http://swift-info.ru
Всех, кто хочет поучаствовать в переводе, прошу писать сюда - sergey@hellomrbrown.ru
iOS-программирование по-русски
Блог о программировании для iPhone, iPod, iPad, уроки для новичков, продвинутое программирование - Блог возрождается! ;)
среда, 4 июня 2014 г.
воскресенье, 24 февраля 2013 г.
Урок 9. Как программировать на iOS - О парадигме MVC
Всем привет!
Кажется, самое время для нового урока.
В прошлых уроках мы говорили о языке Objective-C, о том, что все в нем - объекты, мы поговорили про то, как описывать свои объекты и так далее.
Сегодня мы поговорим о парадигме MVC - по сути, это такая организация кода, которую чаще всего придерживаются при разработке для iOS.
Кажется, самое время для нового урока.
В прошлых уроках мы говорили о языке Objective-C, о том, что все в нем - объекты, мы поговорили про то, как описывать свои объекты и так далее.
Сегодня мы поговорим о парадигме MVC - по сути, это такая организация кода, которую чаще всего придерживаются при разработке для iOS.
пятница, 15 февраля 2013 г.
Урок 8. Как программировать на iOS - О языке Objective-C. Часть 2
Приветы!
Продолжаем наши уроки.
В прошлый раз мы говорили об основах языка Objective-C и о том, что такое объект и класс.
Сегодня мы узнаем о наследовании и научимся создавать свои классы.
Продолжаем наши уроки.
В прошлый раз мы говорили об основах языка Objective-C и о том, что такое объект и класс.
Сегодня мы узнаем о наследовании и научимся создавать свои классы.
четверг, 7 февраля 2013 г.
Урок 7. Как программировать на iOS - О языке Objective-C
О языке Objective-C
Всем привет!
Вот и новый урок. Очень хочется выпускать их чаще, но сейчас
много работы и чаще раза в неделю писать не получается. Постараюсь писать хотя
бы два раза в неделю, но обещать не буду.
Сегодняшний урок – чисто теоретический. Мы
познакомились в прошлых уроках с тем,
как можно «рисовать» интерфейс нашего приложения с помощью встроенных
инструментов Xcode, а
затем обращаться к этим элементам и перехватывать их события.
Но чтобы писать по-настоящему хорошие программы, нужно
прежде всего понимать язык, на котором эти программы пишутся, поэтому этот урок
я посвящаю азам языка Objective-C.
вторник, 29 января 2013 г.
Урок 6. Как программировать на iOS - работаем с кнопкой UIButton
Урок 6. Как программировать на iOS - работаем с кнопкой UIButton
Всем привет!
Продолжаем уроки :)
Сегодня я расскажу про использование кнопок в iOS.
Кнопки - один из самых часто используемых элементов в любой программе. Речь не только об iOS - в любой операционной системе, да и на сайтах в интернете, есть кнопки.
пятница, 25 января 2013 г.
Урок 5. Текстовое поле UITextField и протокол делегата UITextFieldDelegate
Всем привет!
Наступила новая неделя и мы продолжаем изучение iOS :)
В прошлом уроке мы узнали о том, как можно создавать интерфейс приложения "визуально", используя надписи, текстовые поля и т.д., а так же узнали, как мы можем задействовать элементы на экране в нашем коде и даже написали простенькое приложение на эту тему.
Сегодня мы более подробно познакомимся со свойствами UITextField и с понятием делегата.
Наступила новая неделя и мы продолжаем изучение iOS :)
В прошлом уроке мы узнали о том, как можно создавать интерфейс приложения "визуально", используя надписи, текстовые поля и т.д., а так же узнали, как мы можем задействовать элементы на экране в нашем коде и даже написали простенькое приложение на эту тему.
Сегодня мы более подробно познакомимся со свойствами UITextField и с понятием делегата.
Обработка событий в iOS
Давайте начнем с понятия делегата.
Представьте пример: пользователь открыл приложение, перед ним экран с несколькими элементами управления.
В зависимости от элемента управления, с ним можно выполнять те или иные действия - например, нажимать на текстовое поле и осуществлять ввод с экранной клавиатуры.
Или, если это прокручиваемая область, ее можно "прокручивать" пальцем в любых доступных направлениях. Или, если это "список" или "таблица", ее можно опять же прокручивать, "зачеркивать" элементы для их удаления и т.д.
Поскольку мы программисты, то вся забота по реакции на эти события лежит на нас.
На самом деле, часть заботы компания Apple взяла на себя - вся анимация при "скроллинге", вызов клавиатуры и отрисовка символов, которые вводит пользователь в текстовое поле - это и многое другое уже готово. Но, поскольку каждая программа уникальна, эппл не могла написать весь код за нас, поэтому обработку некоторых событий все-таки должны сделать мы.
Но как определить, что пользователь сделал что-то на экране? Возьмем наш конкретный случай - как определить, что пользователь начал вводить текст в текстовое поле (или закончил, нажав клавишу "return")?
Вот тут и появляется понятие делегата. Делегат - это объект, который будет "извещен" о том, что что-то произошло с конкретным элементом на экране.
В нашем случае, мы можем создать делегата, который будет оповещаться всякий раз, когда с текстовым полем произойдет то или иное событие - например, пользователь начнет набирать текст или закончит набор.
Сразу появляется несколько вопросов.
Во-первых, что значит "извещен"? Фактически, это означает, что наша программа сама вызовет специальный метод у объекта, который мы объявили делегатом. Чуть позже мы увидим, как это реализуется в коде.
Во-вторых, любой ли объект может быть делегатом? Нет, не любой. Поскольку программа вызывает специальные методы, она должна быть уверена, что у объекта они реализованы в коде (иначе программа сломается и упадет). Список методов, которые должны быть реализованы, чтобы объект мог называть себя делегатом и привязываться к объекту на экране (например, к тому же текстовому полю) называется протоколом.
Давайте еще раз, коротко.
Программист создает объект и реализует в коде все необходимые методы, указанные в протоколе. Потом привязывает (я позже объясню, как это делается) объект к текстовому полю. Потом запускает программу, нажимает на текстовое поле - текстовое поле обращается к своему делегату (которого, как мы помним, создал программист) и вызывает один из методов.
Это невероятно удобная и гибкая схема.
Делегаты и протоколы существуют не только для визуальных элементов - позже (в более крутых и сложных уроках) вы сможете убедиться, что эти понятия позволяют создавать качественный, быстрый и легко изменяемый код.
Отлично, все хорошо в теории.
А теперь давайте поучимся на практике.
Начнем с того, что нам нужен объект-делегат. В сложных программах для этого обычно создают отдельный класс, но поскольку мы только учимся - давайте сделаем делегатом наш ViewController. Как мы помним, нам надо сделать две вещи - сначала указать, что наш класс реализует протокол делегата текстового поля, а затем реализовать требуемые методы.
Протокол текстового поля называется UITextFieldDelegate.
Чтобы показать, что наш ViewController отвечает этому протоколу, зайдем в ViewController.h и в объявлении напишем
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UITextFieldDelegate>
{
IBOutlet UILabel *myText;
IBOutlet UITextField *inputText;
}
@end
Отлично. Теперь надо реализовать все необходимые методы.
На самом деле, в протоколах методы бывают необходимые (required) и необязательные(optional), которые реализовывать не обязательно.
Конкретно в UITextFieldDelegate ВСЕ методы необязательные и можно вообще ничего не делать :)
Но мы реализуем один (пишем в ViewController.m)
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
myText.text = textField.text;
[textField resignFirstResponder];
return YES;
}
Этот метод вызывается, когда пользователь закончил редактирование и нажал на клавиатуре телефона кнопку return.
Здесь мы: 1) присваиваем надписи тот текст, который вел пользователь
2) убираем клавиатуру с экрана
Теперь остался последний момент - рассказать текстовому полю, что у него теперь есть делегат.
Для этого надо открыть наш ViewController_iPhone.xib, нажать правой кнопкой на текстовое поле и от кружочка в строке delegate провести линию на File owner:
Отлично!
Давайте теперь запустим.
Вот что получилось у меня:
Вот так вот мы научились новому понятию.
В следующем уроке мы узнаем о кнопках и о том, какие еще способы используются для связи интерфейса и кода.
четверг, 17 января 2013 г.
Как запустить свое приложение на iPhone / iPad / iOS устройстве
Всем привет!
Сегодня я расскажу о том, как запустить написанное вами приложение на вашем iphone / ipad / ipod.
Сегодня я расскажу о том, как запустить написанное вами приложение на вашем iphone / ipad / ipod.
Подписаться на:
Сообщения (Atom)