пятница, 26 сентября 2008 г.

Скринкаст про устройство Eclipse IDE

http://www.artlebedev.ru/tools/technogrette/soft/eclipse-introduction/

как узнать PublicKeyToken для сборки .Net

How to obtain public key token for a .Net assembly:

C:\Program Files\NUnit 2.4.8\bin>sn -Tp nunit.framework.dll
Microsoft
(R) .NET Framework Strong Name Utility Version 2.0.50727.42Copyright (c)
Microsoft Corporation. All rights reserved.
Public key
is0024000004800000940000000602000000240000525341310004000001000100cf4a0bbf354b6d8d0c39e7bc40dd0be16a32ba9d763e8d04fd9591b92d7269dd09c2c65ec7563ce393aca71913bea13dd6a20d676ed7ddc726f846fce66800bb034903619a1baa520f5f758946cf2b4af6ba7c310d02d092a5cf51be6d52e88633f502474b4f461d850b63219c09a3373a23d73156ee03d6c7b38c36d1211fac
Public
key token is 96d09a1eb7f44a77

понедельник, 15 сентября 2008 г.

The Ultimate Whiteboard

http://blog.streamlinelogic.ca/2008/03/ultimate-whiteboard.html

Вот это ребята молодцы - я давно говорю, что облепить стену бумажками sticky notes - чуть ли не лучший способ управления проектом в стиле agile

суббота, 13 сентября 2008 г.

Как начать программировать для iPhone под Windows

iPhone Development on Windows Platform quick start how-to

UPDATE Nov 2008: Статья касается программирования под Open SDK, Firmware 1.x

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

Кому?

Эта статья предназначена для практикующих программистов и содержит всего лишь краткий инструктаж на тему "что и где искать" плюс список ключевых слов для поиска. Вы не найдете здесь детального описания что делать, а вместо этого вы найдете описание, что искать в интернете, в каком порядке и что читать для дальнейшего расширения кругозора.
Минимальные системные требования к будущим разработчикам под iPhone


· Опыт программирования на C, C++ или Objective C
· Базовые знания средств разработки и администрирования мира Unix – GCC/C++, Make, SSH, shell, tar, gnu zip и так далее...
Что вам еще понадобится
· iPhone и какой-то опыт его использования
· Cygwin с кросс-компилятором G++ и LLVM (ToolChain)
· Файловая система от iphone с lib файлами для линковки
· Include files от вашей версии фреймворка
· базовые знания Objective C, C++ или plain C
· Аккаунт на Apple Connect, чтобы читать документацию Apple
· Google Code Search, чтобы искать примеры, как что сделать.
· Документация по платформе - Cocoa, WebKit, LayerKit и т.д – ищется по крохам в интернете и же на сайте Apple.

Как пишутся «родные» программы для iPhone

Есть два основных способа написать для iPhone (я имею в виду, "родные" программы на Objective C – и не рассматриваю варианты типа написания веб приложений или приложения на iUI или ином новомодном фреймворке)
- Либо вы получаете лицензию Apple, покупаете MacBook, качаете официальный iPhone SDK и ставите XCode (IDE для разработки) и становитесь настоящим эпловским разработчиком.
- Либо вы используете open source и всякие неофициальные инструменты, устанавливаете ToolChain (http://www.mattcutts.com/blog/hack-your-iphone-toolchains-and-cross-compilers/ ) и пишете все с чистого листа в каком-нибудь текстовом редакторе, поддерживающем синтаксис Objective C (для работающих на Windows могу посоветовать Notepad ++)
Windows разработчикам также понадобится специально настроенный Cygwin и всякие полезные инструменты типа WinSCP.
Сам же iPhone должен быть подвергнут процедуре Jailbreak и для работы на него нужно установить BSD tools и SSH.

Что надо сделать

Итак, перво-наперво надо попробовать хоть что-то собрать под iPhone. В качестве вводной документации по платформе можно воспользоваться книжкой "iPhone Open Application Development" (есть на Amazon, встречается в электронном виде). Из нее можно почерпнуть базовые знания, которых будет достаточно, чтобы собрать ваш первый пример. Правда, надо понимать что книга написана для Firmware v1.1 и несколько устарела.

Жизненно важно накачать как можно больше примеров приложений – можно искать на Google Code Repository, Google Code Search а начать, скачав примеры от книги (http://examples.oreilly.com/9780596518554)

Способу установки ToolChain, описанного в книге, я например предпочитаю вот такой способ:
· http://wiki.iphonegameover.com/Windows_Cygwin_Binary_Toolchain_Installation

Альтернативный вариант описан на форуме сайта iPhones.ru: http://www.iphones.ru/forum/index.php?showtopic=4659

Затем, если вы программист windows, нужно изучить Objective C :-). В принципе, базовые знания даются в книге Open App Development, но их может не хватить. Как минимум, нужно понять концепции - можно начать с Википедии: http://en.wikipedia.org/wiki/Objective_c . Еще одна интересная вводная статья про Objective C: http://cocoadevcentral.com/d/learn_objectivec/

Не помешает понять принципы построения Сocoa framework - это можно либо гуглить, либо искать на сайте http://developer.apple.com/ (там же есть документация по iPhone SDK (http://developer.apple.com/iphone/ ), которая поможет, поскольку при методе разработки, рекоммендованном Apple, используются все те же фреймворки и библиотеки, что и при кустарном методе

Обазательно прочитайте про Memory Management в Cocoa - там используются ref counters, как в COM-е, но с немного нетипичными нотациями. Читать, например, начиная отсюда - http://www.stepwise.com/Articles/Technical/2001-03-11.01.html , далее гуглить.

Как искать утечки памяти?





Можно почитать вот здесь:

Когда приложение падает с BUS ERROR?

SIGBUS, который роняет приложение, возникает от неправедной работы с памятью, например, при использовании (при попытке повторного освобождения) уже освобожденного объекта. 99% что где-то вызывается лишний release или неправильно применено событие autorelease.

Как отлаживаться?

Насколько я знаю, нормально отлаживаться можно только в эмуляторе iPhone при использовании iPhone SDK. При «неофициальном» способе я лично использую логгинг (см процедуру NSLog()) и запускаю приложение внутри iPhone из shell.
Возможно, есть способ прикрутить GNU debugger (gdb), но пока я его не познал – буду рад наводящему совету :-)

Интернационализация и локализация

На блоге weho.ru ребята достаточно подробно рассказывают.
http://blog.weho.ru/2008/04/lokalizacija-prilozhenij-iphon.html

Еще полезные ссылки

· http://ericasadun.com/ – сайт одного из лучших разработчиков и хакеров iPhone
· http://cocoadev.com/ – Wiki с документацией по cocoa, UIKit etc
· http://www.iphonedevcentral.org/home.php - множество скринкастов

Удачи в вашей практике!

PS поздравляю, что дочитали до конца - и вот вам небольшой подарок за терпение - история библиотеки Cocoa и различных KIT-ов на сайте Apple. Оттуда становится понятно происхождение префикса "NS" в назвниях ключевых классов - NSObject, NSString и др.