Pull to refresh
0
0
Send message

Исследуем iOS SDK и используем недокументированные API

Reading time19 min
Views33K
Из этой главы, да и из всей этой книги понятно, что самые лакомые куски программирования под iOS включены в публичные фреймворки, но не в SDK. Неофициальная политика Apple насчет этого проста: вы можете всё это использовать, но только на свой страх и риск. Ваш код может сломаться при следующем обновлении прошивки. Вам самим придётся искать компромисс между риском и прибылью.

Erica Sadun, The iPhone Developer's CookBook
Оригинал
As you’ve seen in this chapter, and throughout this book, some of the nicest bits of iPhone programming are included in the public iPhone frameworks but not in the SDK. Apple’s unofficial policy on this is clear:You can use these items in your programs, but you do so at your own risk.Your code may break at each firmware release. Striking the balance between risk and reward is up to you.

Дисклеймеры


  • Приведенные здесь куски кода работают на обычных iPhone (включая 4S) и iPad (включая new iPad) и не требуют jailbreak.
  • Все решения написаны и протестированы на iOS 5. Все решения также протестированы на совместимость с iOS 4.3, т.е. работают с iOS 4, если не сказано обратное. Основная часть статьи была написана до выхода iOS 6, так что приведенные решения не тестировались на совместимость с iOS 6.
  • Использование недокументированных API может привести к тому, что ваше приложение не допустят в AppStore. А может и не привести :-)
    Для тех, кому интересно, как Apple опрделяет использование приваетных API:«Как Apple узнаёт, что ты используешь приватные API?»
  • Apple может изменить реализацию вместе со следующим релизом iOS, и в вашем коде что-то сломается. Впрочем, это решаемо, и ничем принципиально не отличается от реализации обратной совместимости для документированных API. Ниже я рассмотрел эту проблему чуть подробнее.
  • Я не могу гарантировать, что у найденных мной API нет побочных эффектов. Используйте на свой страх и риск.
  • Лицензионное соглашение Apple Developer Program запрещает реверс-инжинеринг iOS.
  • Статья в процессе доработки. Конструктивная критика приветствуется!

Краткая инструкция по поиску в SDK


Допустим, вам нужно сделать что-то, выходящее за рамки официальной документации.
Читать дальше →

Work and travel — глупо, бесполезно, унизительно?

Reading time8 min
Views107K
Принятие решения занимает какую-то секунду, осуществление – чуть более, у меня заняло около 48 часов. Однако осмысление сделанного – куда более сложная задача. Такой и была поездка по программе Ворк энд трэвел в штаты.
image
Принятие решения на участие в программе было и на самом деле секундным делом, поговорил с другом, который учится в Дубае, и мы решили «Почему бы и нет». Грандиозных планов на лето у меня не было. И я сразу же позвонил в фирму «Х» и отвез загранпаспорт и фотки.
Для участия в программе не нужно никаких сверхъестественных знаний английского, посещение медицинских осмотров и даже не пришлось ехать в военкомат за справкой об отсрочке. Требовалось лишь взять справку из университета, подтверждающую, что я студент, и подписать бумагу на участие в программе, которую подписали в деканате без проблем. Еще требовалось написать свое резюме, но оно составляется на основе уже готовых «рыб», так что и это не проблема.
Читать дальше →

Бесплатные книги по JavaScript

Reading time2 min
Views66K

Javascript Enlightenment


Cody Lindley


Уровень знаний: средний
Тщательный обзор мировоззрения JavaScript через разбор встроенных объектов и нюансов.

Открыть

Eloquent Javascript


Marijn Haverbeke


Уровень знаний: начинающий
Вводная книга по JavaScript и программирование в целом.
Открыть

Building A JavaScript Framework


Alex Young


Уровень знаний: продвинутый
Избранные статьи из цикла«Let’s Make a Framework».
Открыть

Читать дальше →

Хочешь быть iOS разработчиком? Будь им!

Reading time2 min
Views389K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

Читать дальше →

Я переучиваю людей на Java-программистов

Reading time8 min
Views135K

Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:
— А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?

В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.
Читать дальше →

Темная тема финальной версии Visual Studio 11

Reading time1 min
Views29K
В официальном блоге разработчиков Visual Studio представлены скриншоты с измененным UI в темной теме оформления. Напомню, что ранее был опубликован обширный материал (читать на хабре) о грядущих изменениях в UI светлой темы оформления с описанием новых элементов оформления.

image

Под катом еще несколько скриншотов разных элементов UI и сравнение их с оформлением в текущей бета-версии среды разработки.
Читать дальше →

Изменение интерфейса Visual Studio в приходящем RC

Reading time5 min
Views10K
С выпуском Visual Studio 11 Beta еще в феврале этого года мы внесли изменения, с учётом полученного опыт пользователей, основанного на двух основных принципах при разработке, первый из которых — выделение большего пространства для содержимого, а второй — привлечение большего внимания к этому содержимому. После дебюта этих изменений мы получили большой отклик общественности и обратной связи. Мы учли полученную обратную связь и на её основании внесли ряд изменений, запланированных для Visual Studio 11 RC. Я хочу поблагодарить вас за вашу обратную связь через этот блог, а также через другие каналы сообщества — пожалуйста, держитесь на связи.

Цель этого поста — предоставлени Вам информации об изменениях, которые мы сделали, так же, как мы это делали при бета-тестировании. Я также включил краткую информацию об обратной связи по результатам бета-тестирования, которую мы использованы при создании этих обновлений.
Читать дальше →

Пара слов о Header Map в XCode

Reading time3 min
Views5.7K
Семейство языков Си/Objective C/C++ нуждается в препроцессоре. Препроцессор пропускает компилируемый исходник через себя, прежде чем отдать текст на вход компилятору. Пожалуй самая важная часть работы препроцессора заключается в подстановке на место директив #include<имя-файла> содержимого указанного файла. Обычно указывают относительный путь (ex: stdio.h, sys/stat.h). Возникает закономерный вопрос — как препроцессор находит заголовочные файлы?

Классический ответ такой: препроцессор последовательно перебирает пути в INCLUDE_PATH начиная с первого. Относительный путь из директивы include разрешается относительно (sic) папки из INCLUDE_PATH. Если файл не найден, переходим к следующему элементу INCLUDE_PATH. Если INCLUDE_PATH исчерпан, компилятор сообщает об ошибке.

Но Apple как всегда вносит свои коррективы. При сборке в XCode дополнительно используются т.н. header map. Это индекс всех заголовочных файлов в проекте. Если XCode «знает» про foobar.h, то данный файл будет доступен просто по имени (#include<foobar.h>), вне зависимости от фактического размещения на файловой системе.

Это прекрасное решение — до тех пор, пока оно работает как задумано. К сожалению, механизм header map плохо документирован, что не способствует быстрому разрешению проблем. Постараюсь восполнить этот пробел.

Читать дальше →

Кто я: профессионал или недоучка? Исповедь программиста-непрограммиста

Reading time9 min
Views18K
Мне вот интересно много ли таких людей как я. Тех, кто за свою бытность в IT-сфере написал множество сайтов, пару-тройку веб-сервисов, несколько интернет-магазинов и, не смотря на все это, понимает, что не является профессиональным программистом, а лишь программистом «так себе». Никто не узнал себя в этом описании? Вот, например, я – такой! Это обо мне!
Читать дальше →

Философия программирования. Некоторые принципы обучения

Reading time5 min
Views5.9K
imageПреамбула

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

Читать дальше →

Создание множества диаграмм на базе одной модели Entity Framework в Visual Studio 2012

Reading time1 min
Views9K
Это долгожданная функциональность, которую давно ждали любые разработчики или компании, которые используют визуальные модели Entity Framework со множеством сущностей.

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



Но теперь, с появлением Entity Framework 5.0 и Visual Studio 2012, вы можете иметь множество раздельных диаграмм одной и той же модели данных. И это даже круче чем новая возможность раскрашивать различные сущности в разные цвета.
Читать дальше →

Эффективная веб-разработка c Visual Studio 2012: Page Inspector

Reading time4 min
Views16K

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

Разобраться в такой, порой запутанной, системе рендеринга страниц бывает очень непросто. Особенно это актуально для специалистов, которые только приступили к работе над сложным проектом или которым старый проект достался для поддержки.

Чтобы адресовать эту проблему в Visual Studio 2012 добавлен новый инструмент Page Inspector, который позволяет исследовать веб-страницы вашего проекта не просто в виде результирующей разметки на стороне клиента, как это делают Internet Explorer Developer Tool или Firebug, но с привязкой к коду на стороне сервера, который эту разметку генерирует.
Читать дальше →

Выход новых ОС — выход новых сертификаций и экзаменов

Reading time8 min
Views22K
Коллеги, приветствую!
Буквально несколько дней назад стали доступны для скачивания Release Preview новых продуктов компании Microsoft: Windows 8 и Windows Server 2012.

Я уже лично перешел на самую новую клиентскую ОС и даже поставил второй ОС серверную Windows Server 2012 — вкушаю все прелести Metro-интерфейса и прекрасности Touch-интерфейса, о чем свидетельствует кадр ниже:



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

Программирование для всех: новый стандарт грамотности

Reading time2 min
Views12K
Любой человек должен уметь читать и писать — когда-то данный тезис был предметом дискуссий, говорили, что это навыки для «высшей касты», но с 16-19 века все согласились, что грамотность действительно необходима каждому человеку.

А как насчёт программирования? Можно ли в 21 веке признать знание языков программирования новым стандартом всеобщей грамотности? В последнее время набирает популярность идея, что нужно вводить программирование с первого класса школы, потому что цифровые технологии начинают играть критическую роль в повседневной жизни людей.

Даже 70-летний мэр Нью-Йорка, миллиардер Майкл Блумберг, недавно записался на курсы Javascript.
Читать дальше →

Американская мечта, или Полгода в топе. Въ Умѣ

Reading time5 min
Views3.6K

Вместо предисловия


Прошло уже полгода с момента выхода первой версии нашего приложения «В уме». За эти шесть месяцев в жизни изменилось очень многое, но из Top 10 категории Education мы так и не выпали. Раньше меня это немного удивляло, но в конечном счете свыкся.

Со времени первой заметки об этом уникальном опыте также прошло полгода. К выходу очередной (но не последней) версии приложения приурочим это скромное продолжение истории.
Читать дальше →

О том, как идея побеждает маркетинг, а сельские дети калькулятор. В уме

Reading time6 min
Views5.3K

Вместо предисловия


Гуляем в субботу с друзьями на одной московской площади. Вокруг празднично, много народу. Хороший приятель с исключительно гуманитарным образованием, работающий в продажах, неожиданно поворачивается и говорит: «Слушай, забыл сказать: вы своим приложением спасли меня от скуки. Мозг кипит, очень здорово! Особенно неметрическая система радует».

Воскресенье, вечер. Раздается звонок на мобильный: «Алло, Антон? Слушай, тут в задаче 925 нет подсказки с переводом вершков в аршины. Не забудь поправить в обновлении!» И это человек, который в пятницу жаловался, что считать в уме тяжело, выдержки не хватает.

Понедельник. Сижу рядом с домом в кофейне, дописываю код версии 1.1. Заходит мужчина лет тридцати. Хорошее пальто, костюм. Берет кофе, достает iPad и открывает новости. Через 15 минут вижу знакомый экран. Говорю: «Я — разработчик!» Он: «Врешь?» Показал паспорт, пообщались.
Читать дальше →

Полезные штуки для iOS-разработчика #1

Reading time4 min
Views83K
На Хабре в свое время было несколько статей «Очень много полезных штук для AS3». Автор попытался собрать ссылки на самые полезные и интересные библиотеки. И т.к. в последнее время я разрабатываю под iOS, решил последовать его примеру и сделать то же самое, но для своей платформы. Описания почти прикладывать не буду, все есть на страничках проектов.
Читать дальше →

Кто они, indie iOS разработчики?

Reading time3 min
Views8.9K
Привет,

написать этот краткий очерк меня сподвигла статья Разработка под iOS как лотерея: 59% не отбивают затраты.

Основные выводы, которые я вынес из ее прочтения: «iOS-разработка — лотерея, прибыльность приложения практически не зависит от качества, раскрутка — обязательна для успеха».

Я могу согласиться только с последним тезисом о раскрутке. Статистика по окупаемости, приведенная в статье, абсолютно бесполезна и демонстрирует собой классическую «среднюю температуру по больнице». И вот почему.

Те самые iOS разработчики, которыми оперирует в статистике компания App Promo — это совершенно разные люди. Дело в том, что бОльшая часть из них никогда и не рассматривала разработку под iOS как бизнес или просто никогда не подходила к этому серьезно.

Читать дальше →

Разработка под iOS: 60% (или больше) приложений не отбивают затраты

Reading time5 min
Views41K
От переводчика: Это полный перевод статьи Ars Technica, малая часть которой была приведена вчера многоуважаемым alizar. Нам кажется, что в ней содержится много интересных фактов, упущенных в кратком изложении.

Нет недостатка в историях об одиноких разработчиках, которые разработали приложение для iPhone или iPad и заработали ошеломительный успех. Но в реальном мире большинство разработчиков мобильных приложений не выходят на точку безубыточности, говорит последнее исследование маркетинговой фирмы App Promo. Хотя методология исследования немного приукрашивает картину, многочисленные разработчики, с кем мы говорили, описали результаты — 59% приложений не приносят прибыли, а 80% разработчиков не могут поддерживать бизнес только на приложениях — как довольно точные.

Большие ожидания



Apple часто хвастается тем, что App Store предлагает пользователям сотни тысяч приложений на выбор. Однако, несмотря на то, что большое разнообразие помогает пользователям, быть замеченным на большом рынке может быть гораздо труднее для небольших разработчиков.

«В течение лет я вижу как заметность приложений, над которыми я работаю, заметно снижается», — говорит разработчик Пат МакКаррон. «Прямо сейчас ваше приложение никогда не будет замечено, если вы не попадете в список Топ-100 или Топ-200. Пользователи не хотят вечно листать вниз для поиска вашего одинокого приложения в конце списка».

Пол Кафасис из Rogue Amoeba согласен с тем, что App Store все больше становится лотереей, давая меньше шансов преуспеть маленьким разработчикам по сравнению с зарекомендовавшими себя компаниями.

image
Читать дальше →

Настрой свой Google

Reading time2 min
Views25K
После написания этого поста, меня заинтересовали параметры поиска которые можно использовать, для удобной работы.
Задавшись этим вопросом, в рунете я более менее полной информации не нашел.
Но! Оказывается Google уже давно и для всех, все показал.

Читать дальше →

Information

Rating
Does not participate
Registered
Activity