Май 23

Те, кто уже попробовал создать приложение Hello World, могут попробовать свои силы в чем-то более функциональном.

Откройте Xcode, создайте новый проект “Window-Based Application” с именем “Calculator“, создайте контроллер представления “View Controller” с именем “Calc“, а также представление “Calculator“.

Теперь нам понадобится один объект, пара переменных и методы в файле “Calc.h“:

1
2
3
4
5
6
7
8
9
10
11
12
#import <UIKit/UIKit.h>
@interface Calc : UIViewController {
float result;
IBOutlet UILabel *calculatorScreen;
int currentOperation;
float currentNumber;
}
-(IBAction)buttonDigitPressed:(id)sender;
-(IBAction)buttonOperationPressed:(id)sender;
-(IBAction)cancelInput;
-(IBAction)cancelOperation;
@end
  • result” для типа “float” — число в памяти, результат последней операции
  • calculatorScreen” для типа “UILabel” показывает результат операции или вводимое пользователем число
  • currentOperation” для типа “int” является идентификатором операции (1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление, 0 — равенство)
  • currentNumber” для типа “float” — вводимое пользователем число для каждой следующей операции (выводится на “calculatorScreen“)
  • метод “buttonDigitPressed:(id)sender” вызывается при нажатии пользователем одной из кнопок 0-9 (для всех десяти метод будет один). Конечно, можно было предусмотреть и десять методов типа “-(IBAction)button6Pressed“, но я научу определять запрашивающую метод кнопку с помощью “(id)sender
  • buttonOperationPressed:(id)sender” — точно такой же единственный метод для пяти операций: сложения (addition), вычитания (subtraction), умножения (multiplication), деления и равенства (equals).
  • cancelInput” и “cancelOperation” при нажатии пользователем “C” или “ACПродолжить чтение »
    1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
    Загрузка ... Загрузка ...
    Комментариев: 8 »

Май 21

В этом уроке мы рассмотрим создание веб-обозревателя (по-быстрому, с жестко запрограмированным URL или HTML наполнением). Позже мы еще вернемся к этой теме и поговорим о добавлении на верхнюю панель инструментов функций поиска, создания ссылок и пр.

1. Настройка проекта

Я не буду вдаваться в детали по настройке XCode и подобным моментам. При необходимости вы всегда можете вернуться к [предыдущим урокам]. Из верхнего меню выберите команду “File -> New Project“, в окне iPhone OS — выбираем “Window-Based Application“. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (2 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Нет комментариев »

Май 21

Почему бы не представить в магазине приложений свой собственный пазл — как это сделали мы! В этом уроке я поэтапно расскажу о создании такого приложения. Итоговый результат будет выглядеть примерно так, как на фото. Чашку с кофе — и можно приступать.

slider_screenshot1

Как настоящие программисты, для начала остановимся на том, что такое slider puzzle и как его реализовать. Наверное, все помнят детскую игру “пятнашки”, где фишки с цифрами нужно было выстроить по порядку. В нашем случае это будут разрозненные фрагменты изображения, которые собираются в единое целое (их на один меньше, чтобы кусочки можно было перемещать). Теперь подумаем, что понадобится, чтобы воплотить такой проект в жизнь. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (2 голосов, средний: 4.50 из 5)
Загрузка ... Загрузка ...
Нет комментариев »

Май 21

В этом уроке мы узнаем, как добавить в приложение с контроллером навигации “UINavigationController” элемент интерфейса “UIToolbar“. Передо мной стояла задача добавления этой панели в интерфейс одной кнопкой. Щелчок на кнопке должен был загружать контроллер представления, тот же самый что и при выборе “UITableViewCell“. Ниже описано найденное мною решение.

Вот как будет выглядеть готовое приложение:

app1

Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
1 Комментарий »

Май 20

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

Так выглядит стандартная кнопка:

buttonnormal

Она же в нажатом (активированном) состоянии:

buttonhighlighted

stopwatchbutton-200x300Закругленные углы — это, конечно, неплохо. Активированная версия тоже ничего. А вот белый фон меня совершенно не устраивает. Откройте приложение “Clock” и переключитесь на секундомер (Stopwatch). По-моему, кнопки “Start/Stop” и “Reset/Lap” выглядят приличнее. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 4.00 из 5)
Загрузка ... Загрузка ...
1 Комментарий »

Май 20

В комментариях к одному из предыдущих уроков по программированию на iPhone задавался вопрос о способе создания кнопки и ожидании события “UIControlEventTouchUpInside“. Я решил не добавлять ответ в комментарии, а посвятить ему отдельную статью. Мы не будем прибегать к помощи редактора Interface Builder и создадим нашу кнопку исключительно программными средствами.

Исходный код для начала работы возьмем [этот (Hello world!)]. Начнем с нового window-based приложения с одним подклассом “UIViewController” . Внедренная функция “loadView” даст нам возможность полностью управлять заполнением контроллера представлениями. Чтобы приступить к работе над кнопкой, нам потребуется следующий код:

1
2
3
4
5
6
7
8
9
10
// Внедряем loadView для создания иерархии представлений программными средствами,
// без nib-файла.
- (void)loadView {

//размещаем представление
self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

//настраиваем для него цвет фона
self.view.backgroundColor = [UIColor whiteColor];
}

Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Нет комментариев »

Май 20

Одна из привлекательных особенностей интерфейса Cocoa Touch — упрощенная работа с анимацией. В этом уроке я покажу пару простых примеров создания анимации для iPhone. Наша анимация будет выполнять две задачи: перемещать объект на экране и менять его размеры в зависимости от точки касания его пользователем.

Тем, кому еще не приходилось заниматься программированием на iPhone, полезно будет ознакомится с азами [здесь]. В качестве примера приведу также урок из серии Stanford iPhone Development (в оригинале), где рассматривались основы анимации движения.

Ниже выложено короткое видео приложения, которое нам предстоит создать. Как уже упоминалось выше, с ним можно делать две вещи. Один щелчок будет перемещать внутреннее представление к точке касания. При двойном касании представление будет перемещаться с изменением размеров. Ориентируясь на точки касания, приложение создавать прямоугольник с фреймом для представления. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (4 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Нет комментариев »

Май 19

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

Что такое утечка памяти и почему она так важна?

Утечка памяти происходит, когда программа утрачивает доступ к фрагменту информации, для которого выделялась динамическая память. В результате “утерянная” память больше не высвобождается. Такое обычно происходит, когда код включает функции “new“, “malloc” или “alloc” в отсутствие соответствующих им “delete“, “free” либо “release“.

При задействующихся функциях “new“, “malloc” и “alloc” операционная система выделяет программе фрагмент памяти, предлагая определенную область, находящуюся по конкретному адресу. При этом система рассчитывает, что на данный фрагмент памяти будет иметься ссылка (обычно в форме адресного указателя). По окончании работы с ним ОС ждет сообщения о последующих действиях (посредством обращения к функциям “delete“, “free” либо “release“).

Если в программе не остаётся указателей на адреса этих фрагментов, налицо утечка. Программа не знает расположения объектов в динамической памяти, соответственно, у нее нет возможности их удалить. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Комментариев: 3 »

Май 19

Закончим эту серию статей, добавив к игре звуковое сопровождение. Поскольку это уроки для новичков, я не буду вдаваться в связанные с OpenAL и Audio Queues сложности. Сегодня мы займемся воспроизведением коротких звуков (менее 30 с). При отсутствии потребности в фоновой музыке это самый простой способ работы с аудио. (Конечно, можно было бы поставить 30-секундный фрагмент на циклическое воспроизведение, но до такого позора мы не опустимся.)
Проблема при таком подходе заключается в том, что одновременно может проигрываться не более одного аудиофайла. Что ж, приступим… Нам понадобится код прошлого урока который мы можно скачать по [этой ссылке] (воспользуйтесь своим или загрузите новый вариант). Сегодня мы будем работать с двумя звуками: один — для удара по мячу, второй — для набранного очка. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
1 Комментарий »

Май 19

Программирование игр на iPhone. Часть 3 — экранная заставка.

На этот раз я познакомлю с парочкой моментов, которые придадут игре более завершенный вид. Для начала добавим к игре заставку с пятном. (Вновь прошу прощения за отсутствие художественных талантов. С Photoshop’ом так и не подружился.)

Создаем экранную заставку.

Добавим к игре заставку, которая постепенно будет сменяться основным экраном игры. Для начала загрузим изображение и добавим в относящуюся к проекту папку “Resources“. Убедитесь, что опция копирования изображения в папку проекта помечена флажком. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Комментариев: 5 »