Обсуждают в коллекции

Фильм «Фонтан» 81


Тёрка в тагах


Сейчас обсуждают

Враги

Его(0) Общие(0) Обиженные(2)


  • Atrinax

  • GreenStyle

  • login

  • login

  • login

  • login

На странице: 24 48 96

Большая Тёрка / Мысли /

Личная лента

фото

firuz1844

Портрет жителя

iPhone Development: Exploring the iPhone SDK

книги

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

iPhone Development: Exploring the iPhone SDK
by Dave Mark, Jeff LaMarche

Synopsis

Are you a programmer looking for a new challenge? Does the thought of building your very own iPhone app make your heart race and your pulse quicken? If so, then Beginning iPhone Development is just the book for you.

Assuming only a minimal working knowledge of Objective‑C, and written in a friendly, easy‑to‑follow style, Beginning iPhone Development offers a complete soup‑to‑nuts course in iPhone and iPod Touch programming.

The book starts with the basics, walking you through the process of downloading and installing Apple’s free iPhone SDK, then stepping you though the creation of your first simple iPhone application. You’ll move on from there, mastering all the iPhone interface elements that you’ve come to know and love, such as buttons, switches, pickers, toolbars, sliders, etc.

You’ll master a variety of design patterns, from the simplest single view to complex hierarchical drill‑downs. You’ll master the art of table‑building and learn how to save your data using the iPhone file system. You’ll also learn how to save and retrieve your data using SQLite, iPhone’s built‑in database management system.

You’ll learn how to draw using Quartz 2D and OpenGL ES. You’ll add MultiTouch Gestural Support (pinches and swipes) to your applications, and work with the Camera, Photo Library, and Accelerometer. You’ll master application preferences, learn how to localize your apps into other languages, and so much more.

Apple’s iPhone SDK, this book, and your imagination are all you’ll need to start building your very own best‑selling iPhone applications.

Summary of Contents

  1. Introduction
  2. Hello World
  3. Basic Interaction
  4. More User Interface Fun
  5. Autorotation and Autosizing
  6. Multiple View Applications
  7. Tab Bars and Pickers
  8. Introduction to Table Views
  9. Navigation Controllers and Table Views
  10. Application Settings and User Defaults
  11. Basic File Persistence
  12. Drawing
  13. Taps, Touches, and Gestures
  14. Core Location
  15. Accelerometer
  16. Camera and Photo Library
  17. Application Localization
  18. Where to Next?

Как думаете, стоит заказать эту книгу?

P.S. Заказать можно тут

[AppStore] Google Earth теперь доступен для iPhone

Софт для iPhone, Графика

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Компания Google сообщила о том, что для пользователей смартфонов iPhone и iPod touch, стала доступна программа Google Earth.
[видео]

При помощи Google Earth можно осуществлять географический поиск объектов и получать результат поиска в виде 3D изображения нужного объекта или территории.

Данное приложение доступно в магазине iTunes App Store, скачать приложение можно бесплатно (http://www.apple.com/iphone/appstore/), в разделе What’s New — Google Earth.

Источник: topwords.ua

Первая встреча iNsk DevTeam

devteam, Разное

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Можете нас поздравить! Сегодня прошла первая встреча команды разработчиков iNsk.org. Как и было намечено, встреча прошла в кофенй Traveler’s Coffe на Ленина 6 в 12–00. Сам я постарался подойти пораньше, чтобы зарезирвировать столики и накидать повестку встречи (не люблю, когда встречи проходят “ни о чем”).

Изюминкой встречи стали наши новые друзья из Vito Technology — Мурад Назаралиев и Гриша Бутейко. Они уже как полгода пишут софт под iPhone. В данный момент они выложили в AppStore клиента для Task2Gather (система управления задачами) и скоро еще выложат одну очень увлекательную программку, построенную с применением Open GL ES.

Всего присутсвовали семь человек — iSheez (Саша) с Наташей, Trybadyp (Сергей) со своим другом (Алексеем), Грег, Мурад и я. Разговаривали аж до трех часов.

Тем было много, разных и интересных. Но самое важное, что для себя подчеркнул я — для того, чтобы научиться программировать, надо ставить для себя задачу и выполнять её. Так что, если вы реально хотите научиться писать программы для iPhone — берите и пишите. Не бойтесь ошибаться.

Мураду и Грише огромное спасибо за кампанию и за ценные советы!

Apple тестирует прошивку iPhone v2.2 beta 2

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

20 октября, компания Apple представила для ограниченного круга разработчиков вторую бета‑версию новой прошивки 2.2. Желающие работать с ней в обязательном порядке должны продлить контракт с компанией, иначе доступ к iPhone Software v2.2 beta2 и новому пакету SDK будет запрещен. Это наталкивает на мысль, что в новой прошивке будут совершенно новые функции!

Дополнительные символы v. 1.1

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

В первой версии были обнаружены пропажи букв “Ъ” и “Ё” а так же были предложены новые идеи, которые получили свое воплощение в новой версии!

И так, в версии 1.1 были добавлены текстовые смайлики (см. скриншот), которые появляются при длительном нажатии на кнопку “,” (запятая). Были возвращены буквы “Ъ” и “Ё”. Так же была изменена надпись при смене раскладки клавиатуры с “Русская” на “Русский (RU)”, что на мой взгляд логичнее :) Установка: Скопировать файл ”Keyboard‑ru.plist” из архива в директорию: “/System/Library/Frameworks/UIKit.framework” с заменой на новый

скачать:

  Keyboard 1.1 (1.2 KiB, 0 hits)


Если у Вас есть вопросы или идеи, пишите!

Hackintosh: Установка Leopard OS X Retail DVD на PC

devteam, Разное

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Как известно, Маки - компьютеры дорогие. Но если вы хотите например программировать под iPhone, а Мака у вас нет. Как тут быть? Ответ описан в нижеприведенной статье.

При создании первых hackintosh PC, использовались измененные OS X инсталляторы, hackintosh сообщество проделало длинный путь, чтобы заставить работать Mac OS X на обычном PC.

Новый OS X, созданный Apple для маков на базе процессоров Intel, имеет PC-IBM совместимость.

Нам понадобится оригинальный Mac OS X DVD, чтобы превратить наш PC в hackintosh, но мы все еще нуждаемся в bootloader, чтобы заставить устанавливаться OS X. После успешной установки мы можем использовать любые обновления от Apple, не ломая нашу систему или повторно устанавливать операционную систему, без необходимости добавлять те же самые kexts (драйверы), которые необходимы, чтобы поддерживать работу периферийных аппаратных средств, стандарта PC.

Минимальные требования для PC:

- PC с Intel Core Processors и Intel чипсет (AMD еще не поддерживаются).

- Чистый компакт-диск (для создания загрузочного диска).

- Оригинальный Mac OS X DVD (не модифицированный образ OS X).

Скачайте Leopard 10.5.4 ComboUpdate здесь.

Скачайте Chameleon для Жесткого диска здесь.

Скачайте загрузочный Boot-132 образ здесь.

Скачайте EFIStudio здесь.

Шаг 1. Прежде, чем Вы начнете установку:

Запишите загрузочный Boot-132 образ на компакт-диск. Этот BootCD должен работать для большинства конфигураций PC; после загрузки с этого диска, вы сможете начать установку с оригинального OS X DVD. Если установка не началась, возможно, должны изменить содержание загрузочного диска и добавить необходимые kexts файлы. Ищите подробную информацию здесь.

Шаг 2. Установите Леопарда.

1. Вставьте BootCD и перезагрузите Ваш PC.

2. На загрузке BootCD нажмите enter. Вас попросят выбрать шестнадцатеричное Boot устройство с двумя цифрами (ничего не нажимайте).

3. Вытащите BootCD и замените его на оригинальный Mac OS X DVD. Подождите, пока не начнется читать информация с Вашего DVD

Если Вас возвращают к меню bootloader, это значит, что у Вас не оригинальный DVD диск Mac OS X.

4. И так, на этом этапе должен запуститься установщик Mac OS X Leopard. Сейчас Вам придется использовать Дисковую утилиту (подменю Утилит), чтобы разделить и отформатировать Ваш жесткий диск, в формат Mac OS (журнальный). Далее продолжайте установку.

5. После установки будет перезагрузка, в это время замените Mac OS X DVD на BootCD.

6. После загрузки BootCD, войдите в меню с двумя шестнадцатеричными цифрам. Выберите 80, если это пункта нет, вернитесь назад, нажав Esc и попробуйте выбрать 81, и так далее пока Вы не увидите вашу OS X. Выберите ее на нажмите Enter!

7. Mac OS Leopard должна загрузиться.

Шаг 3. Обновление Леопарда до версии 10.5.4

1. Установите 10.5.4 ComboUpdate.

2. Перезагрузите компьютер с BootCD и входите в то же самое меню с двумя цифрами, в которую Вы заходили для запуска Mac OS Leopard. Выберите диск с которого загружались и напечатайте: -v-f (Это надо сделать только один раз, последующие запуски этого не требуют), и нажмите enter.

3. Пока что, Вы еще не сможете загрузить свой hackintosh без BootCD.

Шаг 4. Установка Chameleon

Chameleon, который вы скачали выше, должен состоять из следующих файлов:

Chameleon_DFE_for_Hard_Disk.dmg

OSX86Tools

EFIStudio

1. Откройте Chameleon.

2. Скопируйте содержимое каталога.

3. Щелкните два раза на файле Chameleon_DFE_for_Hard_Disk.pkg и установите на свой жесткий диск.

4. Извлеките BootCD и перезагрузитесь.

5. Теперь Леопард должен загрузиться без BootCD.

Исправления:

Сеть: IONetworkingFamily.kext, из образа GA-965P-DS3_ISO bootcd.

Аудио: AppleAzaliaAudio.kext, из образа Generic.iso BootCD.

Перезагрузка: Замените AppleACPIPlatform.kext этим.

Выключение: Скачайте и установите это.

Чтобы легко установить kexts, Вы можете использовать OSX86 Tools. Более подробно об использовании OSX86 Tools, вы можете ознакомиться здесь. Вы можете также использовать EFI Studio, чтобы попытаться добавить Последовательность EFI к Вашему Boot.plist в том случае, если у Вас проблемы с видео или аудио kexts. Более подробно о EFI здесь.

Видео (Nvidia 7200GS) исправление (QE/CI):

Видео kexts или инжекторы (Nvinject, NvInstaller) не работают после модернизации к 10.5.4. Я попробовал много версий, и ни один не заработала. Я попытался добавить последовательности устройства к com.apple и Boot.plist, используя EFIStudio, и удалил все видео инжекторы в Расширениях, это не помогло. Наконец, я узнал, что у Generic.iso BootCD есть Nvkush.kext и устанавливая Хамелеона, Nvkush.kext устанавливался на мой жесткий диск. Таким образом, я удалил только Nvkush.kext из папки /Extra/Extensions и убедился, что у меня правильная последовательность устройств в com.apple. Boot.plist, используя EFIStudio, после перезагрузки все было нормально!

Теперь у Вас есть Hackintosh, который максимально приближен к реальному Mac с точки зрения основной программы. Вы можете благополучно использовать Обновление Программного обеспечения, чтобы установить обновления непосредственно с сайтa Apple на Ваш PC. Но чтобы получить реальный опыт работы с Mac, лучше купить настоящий Macintosh!

Перевод by iSheeZ, оригинальная статья: тут

AV переходник для iPhone и iPod

Аксессуары, Обзоры

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Недавно наткнулся на такую вот штуку на аукционе eBay.

Вроде как, по описанию, с помощью нее можно подключить к айфону телевизор и аудиосистему. Стоит это чудо всего 13$ + 5$ доставка в любую точку мира. Кто‑нибудь в курсе, как она работает и стоит ли ее заказывать? Получается, что в таком маленьком шнурке каким‑то образом уместили цифро‑аналоговый преобразователь. И зачем там нужен USB разъем? Может она требует внешнего питания?

Рабочая встреча DevTeam’а

devteam, Разное

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Уважаемые коллеги!

Приглашаю всех участников группы iNsk DevTeam встретиться 25 октября в 12–00 в кофейне Traveler’s Coffee на ул. Ленина 12.

Цель встречи — познакомиться и обсудить дальнейшие шаги развития команды.

Также на встрече вас ожидают маленькие приятные неожиданности =)

Кстати, специально для iNsk DevTeam на базе услуг Google для партнеров создана стартовая страница http://devteam.insk.org/. Всем, кто хочет иметь доступ туда — пишите в комменты, на мыло или в аську. Для получивших логин также будут доступны следующие сервисы:

http://mail.insk.org/ — веб‑почта

http://pages.insk.org/ — общие документы DevTeam

http://ical.insk.org/ — общий календарь событий DevTeam

С уважением, Фируз Нарзикулов.

Подкасты

Инструкции

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

“Вы еще кипятите? тогда мы идем к вам” (с) реклама

Удивительно, но факт - многие владельцы iPhone еще не знают, что такое подкасты. Это, наверное, потому, что у них раньше не было iPod. Но мы это безобразие подправим.

Итак, что такое подкастинг? Слово это английское, произошло от слияния 2 слов - iPod (известный медиаплеер от Apple) и broadcasting (вещание). Представляет из себя… ну что-то типа новостей, но не в прямом эфире, а вы их закачиваете, а потом, когда захотите, слушаете (не читаете) или смотрите (видео). Грубо говоря - это mp3, которые лежат на определённых страничках в интернете. Работает все это дело на технологии rss (что такое rss я рассказывать не буду, пытливые умы умеют пользоваться поисковиками). Кстати, подкасты - это не только аудио, но и видео.

Замечательная штука этот подкастинг. Как им воспользоваться? Очень просто. Рассмотрим на примере подкаста “MacLife” с сайта ixbt.com
Запустите iTunes. Выберите пункт меню “Дополнение” - “Подписаться на подкаст”. В появившемся окошке наберите http://podcast.ixbt.com/rss_MacLife_high_mp3.xml
Ну и нажмите кнопку “ОК”
Далее, вы заметите, что в айтюнсе, в разделе Медиатека - Подкасты, появился новый значок с изображением буквы i (многие подкасты вместо скучной i вставляют свои “картинки”). Дважды кликайте на этот значок и получайте подкасты поодиночке, либо нажимайте “Получить все”, если хотите закачать все имеющиеся подкасты.
Итак, подкасты закачали, пора переносить их на айфон. Я думаю, моя помощь тут излишня, но на всякий случай помогу ;)
Раздел Устройства - Ваше название устройства - закладка Подкасты - Галочку на “Синхронизировать выпуски подкастов”… ну а далее на свое усмотрение, лично у меня стоит синхронизиция всех новых подкастов.

Чуть не забыл про видео-подкасты. Вот вам для затравки видео-подкаст новостей от НТВ http://ntv.rpod.ru/rss.xml

Удачного прослушивания и просмотра.

ps: Вы спросите, где брать подкасты? Отвечу… ищите на сайтах оранжевый значок rss. Это раз.
И два - вот, выбирайте - http://rpod.ru/

pps: Слушать и смотреть подкасты на айфоне - запустите программу iPod (эта та самая картинка, нажав на которую вы слушаете музыку на айфоне)

hint: В iTunes есть настройки подкастов. Раздел Медиа - Подкасты - ищите кнопку “Настройки”…

Немного модов

моды, devteam, Разное, Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

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

Первый мод: дополнительные символы

При длительном нажатии на символ “.” (точка) всплывает окно с кучкой новых знаков ;)

Устанавливается очень просто, необходимо скопировать файл”Keyboard-ru.plist” в директорию: “/System/Library/Frameworks/UIKit.framework”

с заменой стандартного.

ОБЯЗАТЕЛЬНО ДЕЛАЙТЕ BACKUP ФАЙЛЫ

(резервные копии :) )

 

скачать:

  keyboard (1.4 KiB, 1 hits)

скачать с narod.disk

 

Второй мод: полная дата на локскрине

Теперь дата на локскрине будет иметь формат: день, число, месяц, год. (например: четверг, 16 октября 2008 г.) Устанавливается очень просто, необходимо скопировать файл ru.plist“ в директорию: “/System/Library/Frameworks/UIKit.framework/DateFormats” с заменой стандартного. 

скачать: 

  date (293 bytes, 0 hits)

скачать с narod.disk

Третий мод: полный день недели на значке календаря

Больше не будет сокращений вроде “ПТ” или “СР” все понятно и удобно! Устанавливается очень

просто, необходимо скопировать файл ”SpringBoard.strings в директорию: 

“/System/Library/CoreServices/SpringBoard.app/ru.lproj” с заменой стандартного. 

скачать: 

  day (23.7 KiB, 0 hits)

скачать с narod.disk

 

На этом пока все, еще раз напоминаю, делайте копии заменяемых файлов!

The iPhone developer’s cookbook

С чего начать, книги, Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Совсем недавно начала продаваться книга Эрики Садун о программировании для iPhone под названием The iPhone developers cookbook. Эта книга поможет вам настроить под себя SDK и продемонстрирует на конкретных примерах, как создавать приложения для iPhone. Если вы знаете английский и хотите научиться писать программы для iPhone, настоятельно советую прочитать эту книгу! Стоимость книги составляет 39.99$ за бумажную версию и 28.79$ за .pdf файл.

 

Но для наших читателей, есть специальное предложение: скачать книгу ;)  

Изучаем Objective-C: Букварь

С чего начать, devteam

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Этот документ доступен для скачивания в PDF формате

alt objectivecaprimer_rus.pdf (74.8 KiB, 0 hits)

Objective-C - это простой язык программирования, разработанный как язык объектно-ориентированного программирования. Objective-C расширяет стандартные возможности ANSI-C, осуществляя поддержку таких возможностей, как описание классов, методов и свойств. Синтаксис языка в основном основан на языке Smalltalk - одном из первых ООП-языков.
Если у вас уже есть опыт работы с ООП-языками, то следующая информация поможет вам разобраться в синтаксисе Objective-C. Многие концепции ООП, такие как инкапсуляция, наследование и полиморфизм, также применяются в Objective-C. Но есть и некоторые отличия, которые отражены в данной статье и в других документах, доступных на официальном сайте для разработчиков.

Если же вы не программировали раньше в языках ООП, тогда вам нужно усвоить некоторые базовые концепции, перед тем как приступить к разработке приложений. Использование объектов ООП является фундаментальным в работе iPhone, и понимание их использования и взаимодействия между ними важны для программирования. Для того чтобы понять концепции ООП, изучите Object-Oriented Programming with Objective-C. Вы также можете изучить Cocoa Fundamentals Guide чтобы узнать о применении концепций ООП в Cocoa. Для более детального изучения синтаксиса языка Objective-C вы можете изучить The Objective-C 2.0 Programming Language.

Читать далее

Objective-C: Как подмножество C

Objective-C - это подмножество языка ANSI C, в котором поддерживается некоторый базовый синтаксис C. Также как и в C-коде, вы определяете заголовочный (header) файл и файл кода (source) чтобы было проще отделить объявление от реализации в вашем коде программы. Заголовочные файлы в Objective-C используют расширение файлов, прдставленное в Таблице 1.

Таблица 1 Расширения файлов для кода Objective-C

Расширение </p>

Тип исходников

.h Заголовочные (header) файлы. Cодержат классы, типы, функции и объявление констант.
.m Файлы кода (source). Это типовое расширение файлов для исходного кода как Objective-C, так и C-кода.
.mm Файлы кода (source). Файлы с таким расширением обычно содержат код C++ в дополнении к коду Objective-C и C. Это расширение используется только, если вы фактически обращаетесь к классам или особенностям C++ из вашего Objective-C кода.

Когда вы захотите включить header файл в ваш исходный код, вы можете использвать стандартную директиву компилятора #include, но в Objective-C можно сделать проще. Директива #import идентична директиве #include, за исключением того, что она проверяет, не включался ли то же самый файл раньше. Во всех примерах и в документации по Objective-C предпочитается использовать #import, соответсвенно ваш код должен быть написан также.

Строковые переменные

Как в подмножестве C, в Objective-C поддерживается те же самые соглашения для того, чтобы определить строки как и в C. Другими словами, единичные символы заключаются в одинарные кавычки и строки заключаются в двойные кавычки. Однако, большинство структур (frameworks) в Objective-C не часто используют стиль описания строк как в C. Вместо этого, большинство frameworks раздают строки в объектах типа NSString.

Класс NSString обеспечивает упаковку объекта для строк, которые имеют все преимущества, ожидаемые вами, включая встроенное управление памятью для того, чтобы хранить строки произвольной длины, поддержку Unicode, утилит форматирования printf-стиля и т.п. Хотя обычно используются именно такие строки, Objective-C обеспечивает упрощеный метод (shorthand) для того, чтобы создать объекты NSString из значения константы. Чтобы использовать этот упрощенный метод все что вам нужно сделать - предопределить стандартную строку, заключенную в двойные кавычки с символом @, так как показано в примерах ниже:

NSString* myString = @"My String\n";
NSString* anotherString = [NSString stringWithFormat:@"%d %s", 1, @"String"];

// Создание строки Objective-C из строки C
NSString* fromCString = [NSString stringWithCString:"A C string" encoding:NSASCIIStringEncoding];

Классы

Как и в большинстве других объектно-ориентированных языках, классы в Objective-C обеспечивают основную конструкцию для формирования некоторых данных с действиями, которые воздействуют на эти данные. Объект - это просто экземпляр класса, который содержит в оперативной памяти копии переменных экземпляров класса, объявленных этим классом и указателями на методы класса.

Определение класса в Objective-C требует две различные части: интерфейс (interface) и реализация (implementation). Интерфейс определяет структуру экземпляров класса, а также instance-переменные и методы, связанные с классом. Реализация содержит код для описания методов класса. Иллюстрация 1 показывает синтаксис, объявляющий класс по имени MyClass, который наследуется из базового класса NSObject. Декларация класса всегда начинается с директивы компилятора @interface и заканчивается директивой @end. После имени класса следует имя родительского класса, отделенное двоеточием. Instance-переменные класса объявляются в блоке кода, который заключен в скобки ({ и }). После блока описания instance-переменных следует список методов, объявленных классом. После каждого объявления instance-переменной или метода ставится точка с запятой.

Иллюстрация 1 Определение класса
alt

alt

Листинг 1 показывает реализацию класса MyClass из предыдущего примера. Как и в декларации класса, реализация (implementation) класса заключена между двумя директивами компилятора - @implementation и @end. Эти директивы предоставляют определенную информацию, которая нужна компилятору для того, чтобы связать вложенные методы с соответствующим классом. Поэтому, определение метода соответствует заданному определению в интерфейсе, кроме включения блока с кодом.

Листинг 1 Реализация класса

@implementation MyClass</p>

- (id)initWithString:(NSString *) aName
{
if (self = [super init]) {
count count = 0;
data = nil;
name = [aName copy];
return self;
}
}

+ (MyClass *)createMyClassWithString: (NSString *) aName
{
return [[[self alloc] initWithString:aName] autorelease];
}
@end


Примечание:
Хотя предыдущая реализация класса объявляет только методы, однако классы могут также объявлять и свойства. Для получения дополнительной информации о свойствах, см. в разделе Свойства данного материала.

Когда вы храните объекты внутри переменных, вы так или иначе используете ссылочный тип (pointer type). Objective-C поддерживает как явное, так и неявное объявление типов переменных, содержащих объекты. Явно объявленные указатели включают название класса в объявлении типа переменной. Неявно объявленный тип указателя, в отличии от явного, использует тип id для объектов. Неявно объявленный тип указателя чаще всего используется для таких вещей, как коллекционные классы, где может быть неизвестным точный тип объектов коллекции. Если вы привыкли использовать языки, где используется только явное объявление типов, тогда наверное вы будете думать, что использование неявного объявления типа переменных вызовет кучу проблем. Однако, на самом деле, это обеспечивают огромную гибкость и намного большую динамичность в программах Objective-C.

Вот пример обоих типов объявления переменных для класса Myclass:

MyClass* myObject1; // Явное объявление типа
id myObject2; // Неявное объявление типа

Методы

Класс в Objective-C может объявлять два типа методов: методы экземпляра класса и методы класса. Метод экземпляра класса - метод, выполнение которого - в границах видимости определенного экземпляра класса. Другими словами, прежде, чем вы вызываете метод экземпляра класса, вы должны сначала создать этот экземпляр класса. Методы класса, к примеру, не требуют, чтобы вы создавали экземпляр класса, но поговорим об этом позже.

Объявление метода состоит из идентификатора типа метода, типа возвращаемого значения, одного или более ключевых слов сигнатуры, а также тип свойства и информации о имени. Иллюстрация 2 показывает объявление метода экземпляра класса insertObject:atIndex: Объявлению предшествуют знак минуса (-) , который указывает, что это метод экземпляра класса. Фактическое имя метода (insertObject:atIndex:) - это связь всех ключевых слов сигнатуры, включая символы двоеточия. Символы двоеточия объявляют присутствие свойства. Если у метода нет никаких свойств, то опустите двоеточие только после первого ключевого слова сигнатуры. В этом примере метод получает два свойства.

Иллюстрация 2 Синтаксис объявления метода

alt

Когда вы хотите вызвать метод, вы делаете это через обмен сообщениями с соответствующим объектом. Сообщение в этом случае - это сигнатура метода вместе с информацией о свойстве, необходимые методу. Все сообщения, которые Вы посылаете объекту, отправляются динамически, таким образом облегчая поведение полиморфизма классов в Objective-C. Другими словами, если подкласс определяет метод с той же самой сигнатурой, как один из ее родительских классов, сначала сообщение получает подкласс и может решить отправлять сообщение его родителю или нет.

Сообщения заключаются в квадратные скобки [ и ]. Внутри скобок указывается объект, которому предназначено сообщение (включая все необходимые свойства) и само сообщение. Например, чтобы послать сообщение insertObject:atIndex: объекту из myArray переменной, следует использовать следующий синтаксис:

[myArray insertObject:anObj atIndex:0];

Чтобы избежать объявления множества локальных переменных хранящих временные значения, Objective-C позволяет вкладывать сообщения друг в друга. Возвращаемое значение из каждого вложенного сообщения используется как свойство, или как цель для другого сообщения. Например, вы можете заменить любую из переменных, используемых в предыдущем примере, сообщениями для того чтобы получить значения. Таким образом, если бы у вас был другой объект, названный myAppObject, у которого были бы методы обращения к объекту типа массив и объект, который необходимо вставить в массив, то вы могли бы написать предыдущий пример, таким образом:

[[myAppObject getArray] insertObject:[myAppObject getObjectToInsert] atIndex:0];

Хотя предыдущие примеры посылали сообщения экземпляру класса, вы можете также посылать сообщения непосредственно классу. Когда сообщение передается классу, метод должен быть определен как метод класса, а не как метод экземпляра класса. Методы класса чем то похожи на статические участники (static members) в классах C++.

Обычно методы класса используются как фабрика методов с целью создания новых экземпляров класса или для предоставления доступа к определенной части допустимой информации класса. Синтаксис объявления метода класса схож с синтаксисом описания методов экземпляра класса, но с одним исключением. Вместо того знака минус в определении идентификатора типа метода, используется знак плюс (+).

Следующий пример демонстрирует использование метода класса как фабрики методов для класса. В этом случае метод arrayWithCapacity: - метод класса из класса NSMutableArray, который размещает и инициализирует новый экземпляр класса и возвращает его в ваш код.

NSMutableArray* myArray = nil; // nill - это то же самое что и NULL (пустой указатель)
// Создание нового массива и назначение его переменной myArray
myArray = [NSMutableArray arrayWithCapacity:0];

Свойства

Свойства - удобное средство для замены объявления средств доступа метода (accessor method). Свойства не создают новые переменные экземпляра в объявленом класск. На самом деле, свойства - это упрощенный способ (shorthand) для определения методов, обращающихся к существующим переменным экземплярам. Классы, которые подставляют переменные экземпляра, могут использовать обозначение свойства вместо того, чтобы использовать синтаксис getter и setter. Классы также могут использовать свойства для того, чтобы подставить виртуальные переменные экземпляров класса - данные вычисленные динамически, но фактически не сохраненые в переменных экземплярах класса.

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

Включаете объявления свойств с объявлениями метода в вашем интерфейс-классе. Для объявления свойств используют директиву @property, сопровождаемую информацией о типе и имени свойства. Вы можете также описывать свойства с собственными параметрами, которые определяют, как методы доступа должны себя вести. Ниже приведены примеры объявления нескольких простых свойств:

@property BOOL flag;
@property (copy) NSString* nameObject; // Копирование объекта во время присваивания.
@property (readonly) UIView* rootView; // Создание только метода getter.

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

myObject.flag = YES;
CGRect viewFrame = myObject.rootView.frame;

Хотя имена объекта и свойства в предыдущем примере надуманы, они все же демонстрируют гибкость свойств. Синтаксис с применением точки фактически маскирует соответствующий набор вызовов метода. Каждое доступное для чтения свойство поддерживается методом с таким же именем, что и само свойство. Каждое доступное для записи свойство поддерживается дополнительным методом формы setPropertyName: , где имя свойства начинается с большой буквы. (Эти методы являются фактической реализация свойств и являются причиной, по которой вы можете включать объявления свойства для атрибутов вашего класса не поддерживаемых переменными экземпляра класса). Давайте перепишем предыдущий пример с использованием методов вместо свойств:

[myObject setFlag:YES];
CGRect viewFrame = [[myObject rootView] frame];

Для того чтобы узнать больше о том, как объявлять свойства в своих собственных классах, прочтите раздел Properties в документе The Objective-C 2.0 Programming Language.

Протоколы и Делегаты

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

В iPhone OS обычно протоколы используются для делегирования объектов. Делегированный объект - это объект, который действует от имени (или под руководством) другого объекта. Чтобы лучше понять как взаимодействуют между собой протоколы, делегаты и другие объекты, давайте рассмотрим пример.

Например, класс UIApplication реализует нужное нам поведение приложения. Вместо того, чтобы заставлять подкласс UIApplication получать простые запросы о текущем состоянии приложения, класс UIApplication передает эти запросы назначенному объекту-делегату, вызывая при этом определенные методы. Тоесть, объект, который реализует методы протокола UIApplicationDelegate, может получать эти запросы и выдавать на них соответствующий ответ.

Объявление протокола похоже на интерфейс класса, за исключением того, что у протоколов нет родительского класса, и они не определяют переменные экземпляра. Следующий пример показывает простое объявление протокола с одним методом:

@protocol MyProtocol
- (void)myProtocolMethod;
@end

В случае, когда используется много протоколов делегирования, принятие протокола - это просто вопрос реализации методов определенных этим протоколом. Есть некоторые протоколы, которые требуют, чтобы вы ясно заявили, что вы поддерживаете протокол, и тогда протоколы могут определять оба метода, как необходимые, так и опциональные. Чем глубже вы увлекаетесь разработкой приложений, тем больше времени вам придется потратить на то, чтобы почитать раздел Protocols из документа The Objective-C 2.0 Programming Language.

Хотите знать больше?

Предыдущая информация была предназначена прежде всего для того, чтобы ознакомить вас с базовыми основами языка Objective-C. Охваченный в данном материале предмет отражает лишь некоторые особенности языка, с которыми вы наверняка встретитесь. Однако вам необходимо знать, что описанные здесь особенности - не единственные, поэтому мы всегда поощряем читать больше об Objective-C в документе The Objective-C 2.0 Programming Language.

Это первая версия перевода документа, которая доступна по адресу: http://www.insk.org/category/devteam/start/objectivecprimer/
Оригинал статьи (англ.) находится по адресу: http://developer.apple.com/iphone/gettingstarted/docs/objectivecprimer.action

3 комментария

[AppStore] Обмен виртуальными визитками на iPhone

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Meganova BV выпустила приложение для iPhone под названием Nameo. Программа предназначена для обмена визитками vCards между iPhone с прошивкой 2.0 и выше.

Для того, чтобы отправить визитку, пользователь должен просто кликнуть на зеленую кнопку Connect, два iPhone при этом должны быть рядом.

Стоимость приложения 0,99 $, найти его можно на App Store.

Источник: mobile‑arsenal.com.ua

[App] WunderRadio

Сети и интернет, Софт для iPhone

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Однажды, дождливым осенним вечером мне вдруг неожиданно захотелось послушать музыку. Разную. Конечно, можно было бы включить радиоприемник, но лень — двигатель прогресса. Я хочу слушать на айфоне.

Favorites"Now Playing"

Искать долго не пришлось — в App Store уже давно томится программа под названием WunderRadio. Что она умеет? Немного. Вещать. Что порадовало — список радиостанций огромен.
Я, как и подобает патриоту, решил начать «прослушку» с новосибирских станций. WunderRadio осторожно поинтересовалась, может ли ей посмотреть мое текущее местоположение. Я согласился. Программа сказала, что в городе у нас вещают в Интернет 2 радио — Радио «Юнитон» и Радио «Слово». Второе — не понравилось по качеству, а вот Юнитон порадовал.
Но не Юнитоном единым жив человек. Послушал переговоры американских полицейских, немецкую речь, еще что‑то. Пока не догадался посмотреть на радио, расположенные в Москве. Вот уж где простор! Безусловный лидер — Corbina Radio. На все вкусы радиостанции. Начиная от блатняка (интересно, кто назвал его шансоном?) до чтения (спектакли и аудиокниги). Качество… ну у меня на диске есть mp3 с качеством похуже. То есть все на высоте. Кстати, многие онлайн‑радиостанции (Юнитон, например) позволяют выбрать качество вещания, что, безусловно, удобно.

Распознование продуктов на iPhone

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

На выставке myPhone 2008  некая Дебора Вилсон представила работающий вариант программы, которая анализирует фотографию тарелки с едой и выдает информацию о количестве калорий. Правда или фикция, кто как думает?
[видео]

Мобильный компаньон для iPhone

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

olo-iphone-netbookКомпания OLO Computer запустила тизерный сайт, на котором сообщается о скором выпуске нетбука‑компаньона для iPhone. Идея этого устройства аналогична Palm Foleo или CELIO RedFly: к нему можно будет подключать по беспроводной связи iPhone или iPhone 3G, и пользоваться всеми преимуществами дисплея большего размера и QWERTY‑клавиатуры. Собственной операционной системы у мини‑ноутбука OLO, по всей видимости, нет, он лишь предоставляет доступ к информации на iPhone.

Все известные данные об устройстве от OLO Computer взяты с тизерной страницы, а она не содержит никаких подробностей относительно его характеристик, лишь изображение и надпись “coming soon”. Судя по фотографии, это аппарат в стиле мини‑ноутбука с QWERTY‑клавиатурой и тачпадом. Когда модель будет выпущена и сколько будет стоить, также не ясно.

Источник: hpc.ru

Альтернативное программирование iPhone

С чего начать, devteam

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

iphoneremote_319_418Всем разработчикам под iPhone известно, что раньше можно было писать только Web‑приложения, которые работали из под Safari. Иногда, оказывается, проще использовать именно эту технологию для написания своей программы. Вот вам пример от IBM, как написать аналог Saling Clicker — пульт дистанционного управления Mac OSX через встроенные возможности системы.

Секрет визуальной оптимизации от Apple :)

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Практически все владельцы смартфона iPhone замечали, что встроенные приложения, такие как Mail и Contacts загружаются ощутимо быстрее, чем приложения от сторонних разработчиков. Почему так происходит, выяснил веб‑ресурс MacBidouille.

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

Источник: media.mabila.ua

iPhone в бизнес-процессах

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Пользователи iPhone теперь могут получать удаленный доступ к бизнес‑процессам, поддерживаемым платформой Xerox EIP (Extensible Interface Platform). Программа позволяет сканировать сразу несколько документов с помощью Xerox MFP, напрямую отсылать их другим людям, находящимся в отдалении, а также сохранять данные в системах управления контентом, таких, как Xerox Docushare.

Мобильные сотрудники могут искать, просматривать и переадресовывать документы без использования стационарного компьютера или ноутбука.

Кстати, в Новосибирске, программную платформу Xerox DocuShare использует центр информационных технологий НГТУ. Платформа реализована в качестве электронного хранилища учебно‑методической информации и материалов издательства НГТУ.

Кроме того, Xerox DocuShare используется в университете как механизм организации коллективной работы с документами и маршрутизации документов в соответствии с задачами учебных и административных процессов университета.

Источники: maccentre.ru, xerox.ru

5 комментариев

iPhone Tech Talk

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

 

iphone_techtalk08

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

“Узнайте больше об инструментах и технологиях, применяющиеся для создания iPhone‑софта, выслушайте советы и рекомендации экспертов по оптимизации кода и улучшению пользовательского интерфейса, а затем примените полученные знания для создания собственных приложений”, — говорится в анонсе этой кампании.

Разработчики могут зарегистрироваться, чтобы принять участие в этой встрече, которая будет проводиться в следующих городах:

Северная Америка
Октябрь 22 Сан‑Франциско
Октябрь 24 Лос‑анджелес
Ноябрь 03 Остин
Ноябрь 05 Чикаго
Декабрь 02 Нью‑Йорк
Декабрь 04 Торонто
Декабрь 09 Сиэтл

Европа
Октябрь 22 Париж
Октябрь 24 Мюнхен
Ноябрь 03 Амстердам
Ноябрь 07 Лондон
Ноябрь 10 Берлин
Ноябрь 11 Мадрид
Ноябрь 14 Копенгаген
Ноябрь 17 Цюрих
Ноябрь 19 Рим
Декабрь 08 Стокгольм

Индия
Ноябрь 24 Бангалор
Ноябрь 27 Дели

Азия и Австралия
Октябрь 30 Токио
Ноябрь 04 Сингапур
Ноябрь 10 Гонконг
Ноябрь 19 Сидней
Ноябрь 21 Мельбурн

Новый iPhone

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

iphone_hsdpa-med_medium

Все больше слухов начинает появляться о грядущем выходе нового iPhone 3G.

По заверению Apple Daily Review, анонс можно ожидать во второй день рождения iPhone, то есть 9-го января 2009-го года.

По заверению источника мы получаем:

- Передача данных нового поколения

- Поддержка и начало продаж по всему миру

- 3.5 Mp камера- Прошивка 3.0

- Память ёмкостью 32 Гб

Продажи достигли 10 миллионов iPhone

Новости

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Apple смогла не только выполнить план по продаже 10 миллионов смартфонов iPhone до конца 2008 года, но и обзавелась почти тремя “лишними” месяцами для отрыва от этого рубежа.

Исследование, организованное разделом AAPL Sanity форума InvestorVillage совместно с сайтом macobserver.com, заключается в сборе IMEI номеров каждого iPhone 3G, который им удаётся раздобыть. Собранные данные позволяют говорить о преодолении отметки в 10 миллионов проданных смартфонов iPhone.

Последний, занесённый в базу 5 октября, чёрный iPhone 3G 8 Гб стал 9190680-м устройством в списке. Даже если учесть ещё не реализованные полтора миллиона смартфонов из общего зарегистрированного Apple списка IMEI номеров, оставшиеся приблизительно 7,6 миллионов iPhone 3G вместе с уже проданными компанией 2,42 млн. аппаратов первого поколения позволяют говорить о преодолении 10-миллионной отметки.

Тем самым Apple удалось «утёреть нос» аналитикам, предрекавшим компании продать от 7,9 до 9,3 млн смартфонов до конца 2008 года.

3DNews.ru

[tips] Отключение автокоррекции

tips

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Конечно, уже октябрь на дворе, но даже некоторые старички так и не победили автокоррекцию, которая не дает нормально набрать слово “кисуля” и прочие полезности, позволяющие общаться с женским полом. А между тем — решение очень простое:

Установите права 200 на эти 2 файлика:

/System/Library/TextInput/TextInput_ru.bundle/Unigrams‑ru_RU.dat
/System/Library/TextInput/TextInput_ru.bundle/Unigrams‑ru_RU.idx

[Game] Everest Hidden Expedition

Игры

Запись опубликована iNsk.org. Пожалуйста, оставляйте комментарии там.

Ты видишь суслика? Нет? А он есть

Не секрет, что друзья не растут в огорода, а в апсторе немало игрух. Как разобраться в этом изобилии, выискивая жемчужины? Очень просто. Мы начинаем. Мы будем писать о самом интересном. Точнее продолжим писать.

Итак, сегодня под нашим микроскопом игра Everest Hidden Expedition.
Забегая вперёд отвечу на вопросы. Стоит за неё выкладывать почти доллар и заливать на айфон 120 мег? Мой ответ — стоит.

Что же за игруха такая. Все просто. Нам показывается картинка. На этой картинке нужно найти предметы. Звучит просто. Но не так‑то уж и легко эти предметы найти… Да чего там скрывать — вот вам скриншот: (кликните для увеличения)
«Everest»Суслика видите? А он есть. Шучу. То есть найти тут предметы, описанные ниже — да легко, вон она лопата, вон она елка, вон она кружка и т.п. Но это, пожалуй, самое легкое задание. А теперь представьте, что это только часть картинки, ее фрагмент. Слева‑справа‑сверху‑снизу — тоже есть. Пальцем только прокрутить нужно. Ну и так вот сидишь, ишешь зеленую гусеницу в зеленой траве. Жена не выдержала и 5 минут. Сказала “Странно‑чудный кошмар, как можно тут что‑то найти”. Однако можно, друзья, можно! Качайте. Нанизывайте. Ищите.

Картинки прорисованы с любовью, смотреть приятно. Немудрено. Айфоны, они такие….