Saint_Byte\'s Blog

Больше чем Web

Работа с камерой на Android

Android обычно идет на смартфонах. А у смартфонов есть камера. Насколько мне помнится API для работы с камерой появляется с 8 уровня API – это соответствует Android версии 2.2. Для этого в AndroidManifest.xml в секции указываем Далее чтоб приложение могло использовать камеру – надо это указать в AndroidManifest.xml примерно так:

Этих настроек будет вполне достачно чтоб использовать камеру. Надо сделать import android.hardware.Camera; После этого можно создавать объект камеры и получать с него изображение.
От камеры требуется в основном получать превью , и сообственно фотографировать. В официальной документации по разработке под android это раздел довольно запутан. Я же предлагаю делать все проше и для этого я даже создал специальный класс. Работать с ним просто :
в layouts/main.xml надо создать FrameLayout. На нем в дальнейшем будет показываться превью картинки. Для того чтоб особо не париться с превью я сделал класс: скачать его можно здесь (CameraPreview.java) Далее его надо подключить: import [Название вашего приложения].CameraPreview; Использовать так:

// В основной класс добавляем 2 переменные
private Camera mCamera;
private CameraPreview mPreview;

// В функцию где начинаем отображать превью добавляем

mCamera = CameraPreview.getCameraInstance(); // Получаем экземпляр камеры

// Создаем экземпляр класс предпросмотра
mPreview = new CameraPreview(this, mCamera);
// Получаем элемент на котором будем показывать превью
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
// Добавляем превью на элемент – после этого там будет показывать превью с камеры.
preview.addView(mPreview);

Картинку с камеры получать ещё проше: mCamera.takePicture(null, null, callback_function);
callback_function принимает в качестве параметра данные уже закодированные как jpeg – остается только сохранить их в файл.

Ко всему выше написаному могу сказать одно – когда разрабатываете под Android и вообще всегда делайте копии. Для создания копий исходников рекомендую использовать системы контроля версий SVN или GIT их так же можно использовать для ведения копий флешке на Android устройствах. Rom Android устройства можно копировать различными программами например : скачать rom manager premium . Но нечто не спасет от кривых рук , и физического воздействия на устройство – все эти меры могут только понизить вероятность потери ваших разработок.

Android / Создание веб-приложения

Создать веб приложение для Android просто. Официальная документация(http://developer.android.com/guide/webapps/index.html) говорит что можно делать двумя путями: на стороне пользователя( client-side application ) разработка с Android SDK и установка на девайс пользователя как .apk. И типичное веб приложение – которое крутиться в браузере. Так как гораздо лучше с точки зрения – доступа для юзера первый вариант. Делается это просто : запускается и создает проект для android.
Открываем файл: /res/layout/main.xml – это визуальная отображение формы. Перетащите на него из палитры компонентов – webview , он находиться во вкладке composite. И если посмотреть исходный код /res/layout/main.xml  должно получиться что-то вроде:
[Читать полностью...]

Safari / Используйте поддерживаемые типы содержания и фунции iOS

Оригинал: http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW15

Знайте о функциях которые вы получили бесплатно в Safari на iOS через использование типов контента и элементов которые обединяться для предствление содержания веб-страниц для для небольших портативных устройств с сенсорными экранами. В частности Safari на iOS обрабатывает типы контента такие как видео и PDF файлы отлично от Safari на настольном компьютере. Safari на iOS так же способно предпоказывать типы контента и запускать другие приложения для отображения типа документа если это возможно. Следуя по ссылка такие как номера телефонов ваш веб контент может запускать приложения тоже. [Читать полностью...]

Safari / Используйте поддерживаемые Javascript’ом окна и диалоги

Стив Джобс умер , акции Apple ведут себя довольно странно – и не поймешь падают они из-за смерти Джобса или из-за того что iPhone 5 откладывается =) Хотя китайцы уже давно выпустили iPhone 5 =) А вообще специалисты по раскрутке сайтов посчитали бы что я переоптимизировал первый абзац на тему APPLE =) Но сообственно продолжю медленно и верно переводить доку по safari на iOS. Потому что мне ещё не раз придется сталкнуться с iOS и Safari , Джобс как Ленин – он умер но дело его живет.
[Читать полностью...]

Safari / Проверка размера вебстраниц

http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW5

Вы можете проверить размер ваших вебстраниц используя Веб Инспектор Safari как описано в Оптимизации время загрузки (“Optimizing Download Time” ) в Инструкция пользователя Safari для веб-разработчиков (“Safari User Guide for Web Developers”) или сохранив вашу веб страницу как веб архив. Полный размер веб архива – размер веб страницы и всех и связанных с ней ресурсов. Следуйте этим шагам что создать веб архив:
1. Выберите Файл -> Сохранить как
2. Введите имя файла в текстовом поле Сохранить как.
3. Выберите Веб-Архив из выпадающего меню Форматы
4. Нажимите сохраниить

На Mac OS X, проверьте размер веб архива используя либо Finder или Terminal. Обычно страницы до 30 Мб прекрасно работают на iOS
[Читать полностью...]

Safari / Известные пределы ресурсов в iOS

iOS славиться своими ограничениями , приложения только из App Store, DRM . По этому сегодня очередной перевод про ограничения iOS. И вообще я призываю пользовать Android и Symbian. Из производителей рекомендую например тот же Sony ericsson. У них есть своя ОС для старых телефонов – со своими фишка и андроид для новых телефон. Но все таки есть какое какие ограничение поэтому : разблокировка Sony ericsson

Перевод:

http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW5

Прекрасная производительность ваших веб-страниц на настольном компьютере не является гарантией что такая же производительность будет и на iOS. Помните что iOS использует EDGE(медленная скачивание , долгое время ожидания ответа) , 3G (быстрое скачивание, долгое время ожидания ответа) и wifi (быстрое скачивание, малое время ответа) для соединения с Интернетом. Поэтому вам надо минимизировать размер ваших вебстраниц. Включая не используемые или ненужные изображения, css и Javascript в ваше вебстранице не благоприятно влияют на производительность вашего сайта на iOS
Потому что память доступная на iOS ограничена – существую ограничения которые она может обработать:

  • Максимальны размер для декодирования GIF , PNG и TIFF изображений 3 мегапикселя
  • То есть, убедитесь, что ширина * высоту < = 3 * 1024 * 1024. Обратите внимание, что декодированный размер гораздо больше, чем закодирован размер изображения.
  • Максимальный размер декодируемый размер для JPEG 32 мегапикселя с использованием подвыборки
  • JPEG изображения могут быть до 32 мегапикселей за счет подвыборки, которая позволяет JPEG изображениям для декодирования до размера, который имеет 1 / 16 количества пикселей. JPEG изображений размером больше, чем на 2 мегапикселей с подвыборкой, то есть декодируется в уменьшенном виде. JPEG подвыборки позволяют пользователю просматривать изображения с новейших цифровых камер.
  • Максимальный размер для тега canvas 3 мегапикселя
  • По умолчанию ширина и длина тега canvas 150х300 пикселей
  • Один файл ресурса должен быть меньше 10 Мб
  • Это лимит применим к HTML, CSS , Javascript или непотоковым ресурсам
  • Время выполнение Javascript  лимитровано 10 секундами для каждой точки входа верхнего уровня
  • Если скрипт выполняется более 10 секунд Safari на iOS останавливает выполнение скрипта в случайном месте вашего кода , что может вызвать непредвиденные последствия.
  • Это ограничение накладывается потому что выполнение Javascript’а может блокировать главный поток браузера и пока скрипт работает пользователь не может взаимодействовать с вебстраницей.
  • Читайте Отладка (Debugging http://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/DebuggingSafarioniPhoneContent/DebuggingSafarioniPhoneContent.html#//apple_ref/doc/uid/TP40006515-SW1 )  для того чтоб отлаживать javascript на iOS
  • Максимальное число открытых документов одновременно – 8.
  • Заметка для iOS: в iOS 1.1.4 и раньше время выполнения Javascript ограничено 5 секундами и размером в 10 Мб. Так же ограничение на размер тега canvas аналогично Safari для настольных систем.

Заметка для iOS: в iOS 2.2.1 и раньше сумма всех фреймов должна быть меньша 2 мегапикселей – это ширина * длина * количество фремов <=2*1024*1024 . В iOS 3.0 и позднее ограничение действует на один фрейм постоянно.

Кроме того, необходимо, чтобы размер изображения был надлежащим.Не надейтесь на масштабирование браузера. Например на ставьте 100х100 изображения в 10х10 элетмент. Используйте маленькие изображения фона; не используйте большие фоновые изображение.

Safari / Использование функции безопасности

Оригинал: http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW5

Safari на всех платформах использует одинаковую SSL реализацию для предоставления безопасного соединения точка-точка. Шифрование предотвращает прослушивание при использование беспроводного соединения через Wi-fi , 3G или EDGE. В Safari поддерживает:

  • SSL 2, SSL 3 и TLS со множеством часто используемых шифров
  • RSA с ключом более 4096
  • HTTPS

Замечание для iOS:Обратите внимание, что Diffie-Hellman протокол, DSA ключи, и самоподписанные сертификаты недоступны в IOS.

Safari / Следуйте хорошим методам веб дизайна.

Перевод: http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW5

Вам следует следовать устоявшимся правилам веб дизайна. В этом раздел рассматривает несколько основных правил которые критичны для Safari. Читайте Разработка веб страниц : Лучшие методы (Web Page Development: Best Practices http://developer.apple.com/internet/webcontent/bestwebdev.html ) более подробного изучения метода дизайна вебстраниц.

Добавляейте DOCTYPE декларацию в ваши HTML файлы
Добавление в начало ваших HTML файлов декларации DOCTYPE говорит браузеру с использование какой специфиации парсить вашу вебстраницу. Смотрите HTML начало (HTML Basic http://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/IntroductiontoHTML/IntroductiontoHTML.html#//apple_ref/doc/uid/TP40002080-SW1) для того что знать как это делать .

  • Разделяйте ваш HTML , CSS , и Javascript в разные файлы

    Ваша вебстраницы более модернизируемые если вы разделяете содержимое страницы в различные файлы для разметки, представления и взаимодействия.

  • Используйте хорошо структурированный HTML

    Вы увеличиваете кросс-платформенную совместимость прогоня ваши HTML файлы через валидатор. Вам следует исправить общие проблемы такие как забытые кавычки , забытые закрывающие теги, неправильная вложенность, неправильный регистр букв, напривльный DOCTYPE. Смотрите http://validator.w3.org или используйте валидатор из вашего инструментария веб-разработчика.

  • Будьте браузеро независимыми

    Страйтесь не использовать строку User-Agent для того чтоб выяснить какой браузер сейчас запушен. Вместо этого прочтите Определение Обьектов (Object Detection http://developer.apple.com/internet/webcontent/objectdetection.html ) для того чтоб узнать как определить поддерживает ли браузер конкретный обьект , свойство или метод и прочитайте Определение WebKit на Javascript (http://trac.webkit.org/wiki/DetectingWebKit ) чтоб знать как узнавать конкретные версии WebKit’а. Так же используйте W3C стандартный метод доступа к обьектам на странице – это getElementByID(«elementID»). Только в крайнем случае используйте строку user_agent , как описано в разделе «Использование Safari User_Agent»(Using the Safari User Agent String” http://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3) для детектирования Safari на IOS.

Читайте “HTML Начало” (HTML Basics http://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/IntroductiontoHTML/IntroductiontoHTML.html#//apple_ref/doc/uid/TP40002080-SW1) и “CSS начало” (CSS Basics http://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/IntroductiontoCSS/IntroductiontoCSS.html#//apple_ref/doc/uid/TP40005041-SW1) для того чтоб писать структурированные HTML и добавлять CSS в существующий HTML.

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

Шаблоны или Манипулирование DOM на Jquery.

Есть тест на эту тему: http://jsperf.com/2dom-manipulation-js-templating-vs-programatic-jquery .  Занимется это тест следующим: «What is faster, generating elements on the fly using jQuery appends and generator or using javascript templates.»( Что быстрее , генерация элементов DOM на лету используя jQuery дополнение и генерация используя javascript шаблоны).  И судя по всему быстрее во всех браузерах именно javascript шаблоны. Причем javascript шаблоны – быстрее более чем в 2 раз почти на всех браузерах.

Safari / Используйте стандарты

продолжение переводов про Safari для iOS: http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html#//apple_ref/doc/uid/TP40006482-SW13

Первое правил веб-дизайна – используйте веб стандарты. Веб разработка основанная на стандартах обеспечивает наиболее согласованное представление и функциональность во всех современных браузера включая Safari. Хорошо сделанный вебсайт вероятно потребует всего лишь несколько доработок чтоб хорошо выглядить и работать на Safari.

Движок WebKit используемый Safari для настольных компьютеров и Safari на iOS поддерживает все последние веб стандарты включая:

  • HTML 4.01
  • XHTML 1.0
  • CSS 2.1 и частично CSS3
  • ECMAScript 3 (JavaScript)
  • DOM Level 2
  • AJAX технологию, включая XMLHttpRequest

Веб постоянно развивает и аналогично развивается WebKit и Safari. Вы хотите быть в курсе развития стандартов разработанных группой Приложений технологии гипертекста (Web Hypertext Application Technology Working Group (WHATWG) ) и Веб консилиумом World Wide Web Consortium (W3C) – WHATWG и W3C вебсайты хорошое место чтоб начать изучать их стандарты и грядущий HTML5

  • www.whatwg.org
  • www.w3.org

Заметка от переводчика: Apple iPhone единым пользуется webKit в качестве движка для браузера. Так же Нокия использует движок WebKit в своих телефона. А купить Nokia гораздо проше в силу цены. Единственный браузер который может быть на мобильных платформа что Nokia/Symbian что iOS достаточный по функциональности это Opera Mobile.

Всегда проверяйте по документации – доступна ли функция на соответствующей платформе.

  • Прочее

  • Обьявления