Удивлительное рядом: про то как я написал сразу для всех операционных систем

Рейтинг:   / 0
ПлохоОтлично 

  

Как я и рассказывал в статьях этого раздела, я принял решение разрабатывать наш корпоративный софт не на первоисточнике, читай Objective-C, а на базе WebView (это когда основная часть разработки и весь интерфейс переносятся на web-часть приложения). Конечно некоторая часть остаётся в основном языке или спрятано от вас библиотекой-wrapper-ом.

Знаете, если создать протокол общения между фоновым языком и JavaScript, то у вас получается интересная ситуация: вы просто берёте и переносите всю "веб-часть" на новую платформу без каких либо изменений, а стандартизованную библиотеку адаптируете под ОС на которой идёт разработка.

Мне понадобилось всего 10 рабочих дней вполне не напряжных, надо заметить, чтобы создать на Android тоже самое, что я уже ранее реализовал на iOS/Nimblekit. Признаюсь, я раньше, как ярый поклонник Microsoft, ни когда даже одним глазом не смотрел на Java. Приступая к разработке подумывал использовать PhoneGap, как и Nimblekit на iOS, но решил попробовать сам создать фоновую часть, чтобы поглубже познать эту новую для меня операционную систему и выяснить: на сколько я был прав, когда решил использовать именно ту архитектуру, что дала мне возможность так гибко и быстро разрабатывать на разных современных гаджетах.

Переход от C# к Java для меня прошёл незамеченным. Я вообще поражён, на сколько Java близка с C# или наоборот, так как второй - шаловливый пацан по сравнению со старцем Java. Проблемой, на первых порах стало только понятие всех этих final и static. Пришлось выкурить мануал. Оказалось, что мои уже почти забытые знания C++ тут мне и пригодились.

В общем за те пару недель я написал практически свой PhoneGap и только с тем функционалом, который нужен мне в приложении. Что позволило сократить размер конечного продукта в 2 раза, что немаловажно для гаджетов.

Ещё, по моему сугубо субъективному мнению, Samsung Galaxy Tab N10.1 - довольно серьёзный конкурент iPad2. За то время, что я работаю с ним и таскаю его с собой везде могу сказать, что iPad я видел там, где он в белых тапочках.

Опятьже отличия разработки просто огромны. Это совсем другое дело, когда ты на PC пишешь программу, нажимаешь F11 и у тебя на девайсе запускается программа. Ты можешь её пошагово отлаживать и вообще крутить и вертеть ею как пожелаешь, а не этот ублюдочный эмулятор iPad/iPhone на Mac OS, в котором ни хрена не видно и после установки на девайс приходится удивляться своим дизайнерским решениям smiley.

Очень неприятно, просто очень неприятно удивил очередной раз Microsoft. Такое чувство, что эти люди, разработчики, задались целю показать мировому IT сообществу как не надо разрабатывать, презирая все стандарты и даже по своему эротическому убеждению реализовали HTML5. Я как-то даже обиделся на них за такое неуважения IT инженеров, отдавших свою проф. жизнь Microsoft-у.

Так сильно обиделся, что напрягшись нашёл другое архитектурное решение: WebKit для Microsoft операционных систем. Есть такая библиотечка, которая написана на Apple и доведена до ума мастерами опенсорса, за что им мой земной поклон. Поскольку эротические взаимоотношения с Microsoft в общем и Internet Explorer в частности меня очень огорчили.

Вот тут: sourceforge.net/projects/webkitdotnet есть всё, что нужно для щастья (вообще-то не всё, там не реализован scripting object, который очень мне был нужен, но решение есть: JSCore). 

Но чтобы это был за Microsoft, ели бы не создавал кучу западло? К сожалению, пришлось констатировать, что подляну они всё таки и тут сделали в виде JavaScript window.external...

Но, после неких шаманств, всё реализуемо и на мобильно-таблеточной Windows 7/Vista, на базе WebKit/Apple. Ну и переход с Java на C# не вызвал вообще ни каких трудностей. Просто переписал жавочные импорты на сишные юзинги (ну, само собой библиотеки), да изменив классы и поля по принципу C#. Очень, кстати, расстроило присутствие отсутствия свойств у классов в Java sad. Пришлось для совместимости отказаться от них и в C#. И пользуюсь я теперь всеми этими геттерами/сеттерами а-ля Java.

Но могу себя похвалить: решение по архитектуре привело к тому, что теперь вся фирма задумалась и перестала со мной спорить. Я то в городом одиночестве в своём архитекторском порыве за 4 месяца создал то, что они целой группой реализовывали (очень хренова, должен сказать) на Windows Tablet аж полгода. 

А у меня одна и та же программа теперь на iOS5, Android 3.2 и Windows Vista/Windows 7 работает.

Правда пришлось "дать по шее" SQL-ешному разработчику за такое наплевательское отношение к данным... Это же надо, я JSON-ом на первых порал получал до 90% мусора вместе с данными. Оказалось, что 90% клиентов (программ) так же в нём не нуждается, как и в постоянному интернет подключению, как текущей реализации софта.

Ну и самое главное преимущество - GUI/интерфейс пользователя. То, что может творить HTML5/CSS3 это - революция. Если особо не впадать в фанатизм, то получаются такие ошеломительные интерфейсы, что...

Короче, мне понравилось. Рекомендую к приготовлению в домашних условиях yes