В общем, не знаю, насколько это правильно/не правильно, постить и шарить такие знания ;) Но, во-первых, я считаю, что Apple такое не пропустит (это раз). А во-вторых, эту информацию можно спокойно найти на просторах интеренета… Главное, ее скомбинировать. Результат объединения знаний, найденных здесь и здесь, вы можете прочитать в статье.
Используйте на свой страх и риск. Для меня это работало и решило мою задачу. Я не несу ответсвенность за то, как ВЫ это будете использовать ;)
Понадобится на самом деле совсем немного. Для начала находим и добавляем из библиотек CoreTelephony.framework. Так как header’ы для него отсуствуют (все-таки Private API), нам понадобится файл хедера, который мы заберем у ericdasan. Все ненужные методы и структуры нам можно спокойно удалять. Нас интересует только вот этот метод :
- (BOOL)sendSMSWithText:(id)fp8 serviceCenter:(id)fp12 toAddress:(id)fp16;
Дальше - все просто:
#import "CTMessageCenter.h"
....
// SENDS SMS Without user prompt!!!
// ServiceCenter - nil - по идее использует SMS-сервисцентр по умолчанию
// Формат я не копал - потому что для меня задача решена ;) Но, скорее всего
// здесь просто номер сервисного центра SMS
[[CTMessageCenter sharedMessageCenter] sendSMSWithText:@"Cool!"
serviceCenter:nil
toAddress:@"+38091ХХХХХХХ"];
Исходный код прилагается
Новый год уже совсем на носу и самое время поздравить нашу команду, друзей и читателей блога Stanfy с наступающими праздниками! Мы хотим пожелать всем быть здоровыми и счастливыми в 2010 году и пусть он будет наполнен открытиями, планами, успехами и достижениями!
В Стенфай в 2009 произошло много всего интересного и значимого для всех нас.
Использование современных мобильных технологий в медиабизнесе
Павел Башмаков в 12:47, 08.11.2009
Презентация с моего доклада, который я рассказывал вчера на MediaCamp Kyiv 09 - ” Использование современных мобильных технолгий в медиабизнесе: Тенденции, перспективы, международный опыт.”
Впечатления, фотографии и отчет о событии будут позже.
Разработка iPhone/iPod touch приложений: Полезности - UIToolBar над UIKeyboard
Павел Тайкало в 12:14, 12.10.2009
Много кто видел как в некоторых приложениях вместе с клавиатурой выезжает UIToolBar - примерно так, как это показано на рисунке.
Есть несколько вариантов так сделать. Первый, и самый “простой” - это позиционировать UIToolBar в нужное место до/или после того, как началось редактирование, и клавиатура должна выехать. Даже для начинающего программиста эта задача не составит особого труда.
Программист более продвинутый, который любит и умеет читать документацию или искать, без особого труда найдет , что можно подписаться на глобальные события UIKeyboardWillShowNotification и UIKeyboardWillHideNotification, чтобы вовремя подставлять/убирать UIToolBar.
После того, как нам не понравится (а нам не понравится) то, что UIToolBar “прыгает” вместо того, чтобы плавно уезжать вместе с клавиатурой, добавим немного анимации. После таких манипуляций должен получиться примерно следующий код:

Разработка iPhone/iPod touch приложений: CoreData. Что в имени твоем? (Часть 2) - Контексты и запросы
Павел Тайкало в 20:27, 23.09.2009
Разобравшись в основных понятиях Core Data, можно начинать им пользоваться. Для простоты и удобства, здесь и далее, будет предполагаться, что NSPersistenceStoreCoordinator, NSManagedObjectContext, NSManagedObjectModel уже созданы, и к ним есть доступ. Модель, которая будет использоваться в примерах, выглядит следующим образом:
Типы данных свойств объектов особого значения для примеров не имеют. Модель взята из “детского набора инженера-генетика”, который позволяет в домашних условиях выращивать животных нечто, с одним телом, одной головой, некоторым количеством рук и ног. Каждая часть тела имеет определенные свойства.
Начать стоит, как обычно, с заполнения БД. Необходимо напомнить, что Core Data - это не БД. Просто мы испольуем ее возможность сохранения данных из Core Data в БД.

Разработка iPhone/iPod touch приложений: CoreData. Что в имени твоем? (Часть 1) - Основные понятия
Павел Тайкало в 16:16, 22.09.2009
Объект - CoreData.
Задача - изучение параметров и возможностей.
Результат - получение общих понятий о возможностях и возможных применениях.
Итак. CoreData - что за зверь такой? Как говорит нам документация, это очень хороший и пушистый зверь, который всего лишь является надстройкой над конкретным хранилищем данных. а именно - над данными, которые хранятся в бинарном виде(CoreData-формат), XML, SQLite базе.
Что же все-таки позволяет сделать CoreData? Операции со сложными графами объектов, с множественными связями, валидацией, с возможностью осуществлять undo/redo операции на и… сохранять эти графы в некотором хранилище данных. Что получает от этого программист? Возможность не опускаться до уровня отщепенцев базы данных, не рассматривать проблему сериализации/десериализации, работая на уровне объектов.
Необходимо заметить, что CoreData справляется с этими задачами очень шустро, и не идет ни в какое сравнение по скорости и количеству кода с другими реализациями ORM под iPhone (будь то самописный ORM на основе SQLite, либо надстрока FMDB, либо SQLite Persistence Objects).
Кроме всего прочего, в SDK 3.0 появились специальные вспомогательные классы, позволяющие быстро интегрировать ввод/вывод данных, сохраненных с помощью CoreData. Так, при помощи NSFetchedResultsController можно без особых проблем использовать UITableView для отображения нескольких ТЫСЯЧ объектов.
Интересно? Читаем дальше …

Статистика просмотра видео через iPhone приложение News Channel 24
Павел Башмаков в 10:02, 15.09.2009
На iPhoneDevCamp Kyiv, Юра Власюк, директор компании iLand, которая разработало приложение News Channel 24 для просмотра видео новостей через iPhone, пообещал узнать статистику использования приложения. И вот, недавно, он прислал скрин с графиком загрузок видео с iPhone через приложение канала 24. После получения разрешения на публикование этой картинки привожу ее здесь.
Итак. в среднем 3000 загрузок видео каждый день. Максимальное значение на уровне 5600 загрузок и минимальное около 700 загрузок в день. И это приложение, которое рекламируется на самом телеканале. Известно также, что им пользуются украинцы за границей для мониторинга новостей об Украине.
В прошлую субботу iPhone разработчики Украины (не Киевом единым, оказывается) собрались на миникем iPhoneDevCamp Kyiv, который прошел в GL-Club. Тема встречи была Best Practices in iPhone Development. В течении 5-ти часов было рассказано 4 доклада, проведена экспертная панель по техническим вопросам связанным с разработкой iPhone приложений и презентовано три минипрезентации украинских iPhone разработок. В перерывах был квас, орешки, поп-корн и вкусное мороженное :)
Детальный отчет и материалы на сайте iPhoneDevCamp Kyiv http://iphonedevcamp.com.ua
Официальный хештег события в твиттере #idck
Нашему уютненькому коллективу все еще требуются программисты для работы над проектами в сфере приложений для мобильной платформы iPhone.
Требования очень простые:
- Понимать, как работает компьютер, операционные системы и современные программы (процессор, память, кеширование, процесс, поток, буфер, интерфейс, бизнес-логика, сервер, клиент, протокол, файловая система)
- Разбираться и понимать как работают Web-технологии (HTTP, HTML/XHTML, XML/XSLT, CSS, JavaScript, SOAP, Cookie)
- Базы данных (таблица, поле, constraint, декартово произведение, объединение, SQL, сложные запросы)
- Технологии и процесс разработки софта (SVN, Bug Tracker, Issue Tracker, Continuous Integration, TDD, Agile, SCRUM)
- Алгоритмы и шаблоны проектирования (сортировка, поиск, архитектура приложения, одиночка, MVC)
- Опыт работы с языками Java/С/С++/Obj-C - плюс
Слов разных много, но если вы чего-то не знаете - это не беда. Всему можно научиться и главное иметь думающую голову на плечах и желание. Все это мы пытаемся найти в человеке на собеседовании.
Чем будете заниматься конкретно? Разрабатывать приложения для iPhone как наши собственные разработки, так и для заказчиков из США, России и Украины.
Сейчас в нашем коллективе 15 человек (4 iPhone программиста), после закрытия текущих вакансий нас станет 16+.
Работа в офисе в Киеве, целый день, чай, кофе, печеньки, молодой и целеустремленный коллектив.
Мы любим, чтобы работа приносила фан и нравился сам процесс. Для этого по пятницам мы устраиваем “лабораторные дни”, на которых улучшаем процесс разработки и коммуникации, осваиваем новые технологии, разрабатываем пилотные проекты, пишем в блог и твиттер, рассказываем друг другу про новые технологии, участвуем в жизни сообществ и т.д. и т.п
Горящие глаза, стремление все время двигаться вперед и улучшать себя, умение работать в коллективе, интерес к новым технологиям и направлениям развития ИТ - все это мы хотим видеть в людях с которыми работаем.
ЗП обсуждается на собеседовании.
Присылайте вашу историю или резюме с кодом JFI33 в теме письма на vacancy@stanfy.com и с копией на pavel.bashmakov на gmail.ком. Обычно, мы стараемся отвечать на все письма, но, по объективным причинам, не всегда можем это сделать. Поэтому, если в течение недели вы не получаете от нас никакого ответа, значит вы, скорее всего, не соответствуете нашим требованиям к кандидату на эту должность.
И приходите на iPhoneDevCamp Kyiv 5 сентября, где соберутся iPhone разработчики, чтобы поделиться опытом и пообщаться.
Разработка iPhone/iPod touch приложений: Error launching remote program: security policy error
Павел Тайкало в 13:46, 27.08.2009
Сегодня столкнулись с такой проблемой как Error launching remote program: security policy error. Приложение удачно ставилось на iPhone/iPod, при запуске выдавалась ошибка прото ,что время действия Provisioning Profile’а истекло. Генерирование нового Provisioning profile’a и заливка его в XCode и, собственно на iPhone, ни к чему не привела - сообщение продолжало вылазить, и работа остановилась до нахождения лучших решений. Удаление всех профилей, кроме нового на iPhone’е тоже ничего не дало.
Немного помучавшись. и в результате нашли проблему.
Зайдя в Organizer в ХСode, можно увидеть примерно следующее:
То есть всего один из установленных профилей просрочен. Удаление просроченного профиля из Organizer’a решает данную проблему.
З.Ы. На скриншоте показаны только не просроченные профили, однако он дает понимание того, как бы выглядел список профилей, если бы хотя бы один из них был просрочен ;)
З.Ы.Ы. На самом деле причин и решений у этой (Error launching remote program: security policy error) проблемы может быть несколько. Однако, в нашем случае это всего лишь просроченный provisioning profile.








