Archive for the ‘Mobile’ Category

Trendy do wykorzystania w przyszłości   Leave a comment

Przyszłość:

  • Wykorzystanie Dockera/Vagranta do wirtuazliacji/opakowania aplikacji do pojemników
  • Używanie grunt/gulp do instalacji
  • Zastosowanie Markdown do dokumentacji, emmpten i innych szablonów ()
  • Używanie Knockout/Angular
  • Serwer internetowy Nginx zamiast Apache
  • Serwer aplikacyjny TomEE zamiast Tomcat
  • Wdrożenie node.js jako serwera (może wzbogacone Edge)
  • Wykorzystanie wkładu Facebooka – kompilator php, analizator składni JS  – Flow (http://flowtype.org/)
  • Stosowanie architektury: natywna aplikacja/webkit-view na urządzeniu mobilnym łącząca się z serwerem poprzez WebAPI (WS) – czyli to co już było
  • Wykorzystanie Google WebAPI np. dostęp do dokumentów, kalendarza, drukowanie w chmurze

ArsTechnica: Ciekawe podejście Google, dużo mówi się o Clang/LLVM, i innych kompilatorach skrośnych. Google też ma w tym doświadczenie: technologia GWT – tłumaczenie Java na JS. Dalszym krokiem Google jest zbudowanie jednolitego kodu nowej wersji Gmail (tzw. Inbox, kodu na trzy platformy (Android, IOS i  … nie Windows, ale przeglądarki internetowe, tak jakby Windows nie był potrzebny – to prawda, gdyż do uruchomienia poczty nie liczy się OS ale kontener – czyli przeglądarka). Do przetłumaczenia kodu Java na Objective-C służy J2ObjC – projekt open-source.  W ten sposób tłumaczy się logikę aplikacji, ale nie tłumaczy się wszystkiego, UI pozostaje do zrobienia “ręcznie” przy pomocy natywnego SDK – jest to ok. 25% kodu. Podobne  podejście cross-platform core, platform-specific UI stosuje Xamarin.

Xamarin w wersji 3 udało się udoskonalić tworzenie interfejsu UI w postaci Xamarin.Forms

Doskonałe tutoriale do JS na serwerach Mozilli – https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain i tutoriale ogólne – https://developer.mozilla.org/en-US/docs/Web/Tutorials. Resig i jego tutorial – http://ejohn.org/apps/learn/#17

Generator wyrażeń regularnych w różnych językach – http://txt2re.com/index-javascript.php3?s=%3CAuthenticateUser%3Eb__3&-2&utm_content=buffer15be0&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

Specyfika aplikacji mobilnych (i nie tylko) polega na próbie oddzielenia warstw logiki od prezentacji (opcjonalnie także warstwy danych – zwanej modelem) i oprogramowania ich w niezależny sposób. Jest to podejście naturalne i racjonale. W związku z tym powstało wiele wzorców projektowych – Model-View-Controller (MVC), Model-View-Presenter (MVP), and Model-View / View-Model (MVVM).  Firma APPMETHOD tak opisuje trzy sposoby tworzenia aplikacji:

  1. Wtyczki HTML oparte o WebKit – słaba wydajność, trzeba stosować JS i komunikację z C++. HTML Canvas (view) i wbudowany element BrowserField + JS (events) + C++(logic). Wymaga komunikacji między JS a C++.
  2. Natywne biblioteki GUI, wymaga to trzech platform kodowych: iOS UI to Objective-C, Android UI wymaga Java (oczywiście C++ jest wspierany przez NDK ale czasami trzeba stosować JNI do Dalvik), logika aplikacji to znowu C++. W przypadku iOS jest trochę łatwiej dzięki temu, że można mieszać kod Objective-C z C++, do tego celu służy Clang.
  3. Framework dla C++ np. http://www.appmethod.com/features, najlepsze rozwiązanie dla programistów C++, chociaż czasami wymaga wywołań JNI
  4. Tworzenie aplikacji mobilnych  wg. Intela – https://software.intel.com/en-us/videos/intel-xdk-app-designer-getting-started – cała seria video tutoriali. Rozbiegówka – https://software.intel.com/en-us/html5/tools#

JQuery to wprowadzilo – na czym polega semantyczne wersjonowania – semantic versioning, which is usually just referred to as semver. The Semantic Versioning 2.0.0 spec summarizes semver like this:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backward-compatible manner
  3. PATCH version when you make backward-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Więcej o Intelu XDK – https://software.intel.com/en-us/html5/articles/why-use-crosswalk-for-android-builds

Ciekawe http://www.phpgang.com/how-to-configure-google-cloud-api-in-php_288.html – wykorzystanie usług Google API np. do drukowania

Finasowanie Mozilli: USA – Yahho, Chiny – Baidu, Rosja – Yandex

SAP udostępnił swoją bibliotekę UI w JS – http://sap.github.io/openui5/?utm_source=Sites&utm_medium=Banner&utm_campaign=OpenUI5, jak zacząć – http://sap.github.io/openui5/getstarted.html

Podstawy WCF i nie tylko – http://www.codeproject.com/Articles/531332/Implementing-a-Basic-Hello-World-WCF-Service-v

Posted 21 listopada 2014 by marekwmsdn in Android, JavaScript, Mind Storm, Mobile, WCF, XDK

Różne   Leave a comment

Tajemnica stojąca za CF – IBM BlueMix to także odmoana CF. Cloud Foundry was created by VMware to streamline deployment for application developers, application operators, and cloud operators. Then in April 2011, Cloud Foundry was announced as open source under the Apache 2.0 license, with the pitch to developers that they could code in the language and Web framework of their choice without worrying about the IT environment.

In February 2014, VMware spin-off Pivotal announced the formation of the Cloud Foundry Foundation, with Pivotal, EMC, IBM, Rackspace, and VMware as Platinum sponsors. The foundation has since expanded to 33 members and 42 contributing companies. One differentiator for Cloud Foundry is support for Pivotal HD Hadoop MapReduce, HAWQ SQL for Hadoop, and GemFire XD analytics. Another is the availability of the Pivotal Mobile Services Suite, thanks to last year’s acquisition of Xtreme Labs. Pivotal’s big data services and mobile services are both now integrated with Pivotal CF, the company’s enterprise version of Cloud Foundry.

Ciekawe artykuły z PHP Gang – jak stworzyć własną wtyczkę do Chrome – http://www.phpgang.com/how-to-create-google-chrome-app-using-json_440.html + inne odnośniki w stopce:

Ciekawe technologie: Docker oraz Vagrant, a także monitorowanie np. pracą jakichś serwerów

Krótka definicja Dockera i firmy które go wspierają – When containers first appeared in Linux, the natural assumption was that it would be yet another of many technologies that Linux has assimilated. But then came Docker, a novel use of containers to make apps portable and self-contained. It’s set Linux vendors scrambling, both to to rethink the way containers are implemented in Linux and to see how Linux can be reworked around Docker’s application-centric model.

Bardzo ciekawy i darmowy zamiennik Fences – Nimi – http://www.maketecheasier.com/organize-windows-desktop-nimi-places/?utm_source=newsletter&utm_medium=email&utm_campaign=15112014

Stara, obrosła sławą w czasach kiedy tworzyły się podwaliny aplikacji webowych (opartych o ‘nowoczesny’ JS i HTML), opiniotwórcza witryna – http://alistapart.com/articles oraz tematy – http://alistapart.com/topics

Techniki template (szablonów) – http://strongloop.com/strongblog/compare-javascript-templates-jade-mustache-dust/. Mustache, Jade

Ważne – jak zacząć przygodę z Azure, ci co mają subskrypcję MSDN może poszaleć – http://azure.microsoft.com/en-us/get-started/ (lub http://azure.microsoft.com/en-us/)

Nowe słowo kodowe Kestrel – nowa wersja Cassini – http://geekswithblogs.net/Aligned/archive/2014/11/06/kestrel-in-asp.net-vnext-for-production-hosting.aspx

Ważna technologia zastępująca WCF – WebAPI do tego link – http://geekswithblogs.net/Aligned/category/13888.aspx

Treściwe podsumowanie inicjatywy MS w sprawie uwolnienia .NET – http://blogs.msdn.com/b/visualstudio/archive/2014/11/12/visual-studio-2015-preview-visual-studio-community-2013-visual-studio-2013-update-4-and-more.aspx. Ważna o tyle, że zawiera wiele odnośników do dalszych materiałów np: http://blogs.msdn.com/b/visualstudio/archive/2014/11/13/tools-for-apache-cordova-update-ios-debugging-amp-windows-8-1-support.aspx i http://blogs.msdn.com/b/visualstudio/archive/2014/11/12/the-c-and-visual-basic-code-focused-ide-experience.aspx

Bardzo ważne – Kompletny opis – https://code.msdn.microsoft.com/ASPNET-MVC5-AngularJS-1f18da53 – generowanie raportu w PDF – nowoczesny sposób

Przykłady kodu deweloperskiego z MS do przejrzenia – https://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=User&f%5B0%5D.Value=Jo%C3%A3o%20Eduardo%20Sousa

Zainstaluj sobie – http://betanews.com/2014/11/11/advanced-systemcare-8-ramps-up-its-security-tools/

Podstawy walidacji w nowoczesnym HTML – http://javascript.about.com/od/validatingforms/a/Attaching-Validation-To-A-Form.htm?utm_source=cn_nl&utm_medium=email&utm_term=Programming%20Channel%20Newsletter&utm_campaign=programsl&utm_content=20140902 i dodatki

Eksperymenty on-line z kodem w JS, HTML iCSS – http://codepen.io/irinakramer/pen/jcLlp

Omówienie narzędzi Intela – https://software.intel.com/en-us/android/tools

Do przerobienia:

Posted 18 listopada 2014 by marekwmsdn in .NET, Android, C#, Mobile, Mobile Apps, MS, MS Azure, Programowanie, REST

Co z rozwojem aplikacji mobilnych   Leave a comment

Napewno potrzebne są narzędzia. Gartner udostępnił na ten temat raport – http://www.gartner.com/technology/reprints.do?id=1-1I9XO1F&ct=130808&st=sb

Jeden obrazek powinien mówić o wszystkim:

Figure 1.Magic Quadrant for Mobile Application Development Platforms

Dane są za zeszły rok (2013)

Posted 28 września 2014 by marekwmsdn in Mobile, Mobile Apps, Mobilne aplikacje hybrydowe

Którędy pójść?   Leave a comment

Są dwie drogi rozwoju aplikacji hybrydowych (opartych o HTML/JS i kompilacji do .apk). Jedną reprezentują firmy kolosy (IBM, Intel, SAP, MS) i polega na wykorzystaniu do tego projektu Cordova. Druga jest innowacyjna, autorstwa Appceleratora oparta o projekt Ittanium (https://www.appcelerator.com/blog/2014/06/announcing-the-3-3-0-release-candidate-of-titanium-sdk-and-studio/). Co wybrać?

Ciekawostki w aplikacjach webowych po stronie klienta   Leave a comment

Przykład tzw. zablokowanego nagłówka (How to create Sticky Table Headers using jQuery) na PHPgang – jako wtyczka do jQuery.

Historia powstania Androida – http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googles-mobile-os/. Cykl wytwórczy Androida – ok. 2-3 mc. Działa na około 1 mld urządzeniach.  Krótki cykl powoduje problem wsparcia starych wersji – wsparcia, którego NIE MA. Specyfika ‘chmurzastego wsparcia’ systemu operacyjnego powoduje, że serwery w chmurach nie wspierają już starych wersji, brak oprogramowania. Wiele funkcji systemowych i narzędziowych wymaga kontaktu z serwerami Google, które są już wyłączone.

MS podobnie jak inni gracze na rynku przeglądarek otworzył dla deweloperów  portal o praca nad IE – do tej pory MS traktował jak część Windows, i nie udostępniał wersji deweloperskich (no z małą różnicą od wersji IE 9).

Aplikacje webowe:

Posted 18 czerwca 2014 by marekwmsdn in html5, JavaScript, Mobile, Mobile Apps

Zasoby o mobilnych urządzeniach   Leave a comment

IBM gigant nie tylko w branży wielkich komputerów ale również poprzez dywersyfikację w konsultingu i usługach ma w obszarze aplikacji mobilnych również coś do powiedzenie (podobnie jak pozostali giganci Oracle i SAP) widząc słusznie możliwość dostarczania w tym dziedzinie nie tylko rozwiązań ale również i usług dodatkowych. Prezentuje swoje rozwiązania w postaci produktu IBM Worklight (preferuje rozwiązanie HYBRYDOWE) prezentowanego w portalu dla deweloperów DeveloperWorks -  (http://www.ibm.com/developerworks/mobile/worklight/best-practices.html?ce=ism0070&ct=is&cmp=ibmsocial&cm=h&cr=crossbrand&ccy=us). Można tam znaleźć naprawdę b. ciekawe materiały teoretyczne.

Materiały dla front-end:

CSS HTML Images  JavaScript JavaScript – AMD JavaScript Libraries – Dojo Toolkit  JavaScript Libraries – jQuery Platform – Worklight Project Setup and Coding Responsive Web Design (RWD) Testing and Debugging

Wizja aplikacji mobilnych m.in. Intela   Leave a comment

Super książki do rozwoju własnego – http://www.ksiegozbiory.cba.pl/ksiegi.html

Magiczny kwadrat Gartnera na temat Mobile Application Development Platform (MADP) – http://www.gartner.com/technology/reprints.do?id=1-1I9XO1F&ct=130808&st=sb.

Urządzenia mobilne:

    1. Artykuł jak zacząć zabawę z androidem na CODE Magazine – http://www.codemag.com/Article/1308051 – świetnie podsumowuje jak wystartować i tłumaczy podstawy (autorem jest Dino Esposito!). Zachęca do stosowania IntelliJ IDEA – http://www.jetbrains.com/idea/download/download_thanks.jsp – w wersji Community

    2. Strona głóna XDK – http://xdk-software.intel.com/downloader.html?windows

    3. Intel oferuje bardzo dobre narzędzia do tworzenia aplikacji hybrydowych – https://prd1idz.cps.intel.com/en-us/html5/tools – XDK (http://xdk-software.intel.com/). Generuje on kod natywny. Świetne wprowadzenie – http://habrahabr.ru/company/intel/blog/221187/. Ponieważ pisze się w HTML5 (JS z jQ lub inne popularne frameworki: Intel App Framework, Bootstrap, Topcoat, jQ Mobile) czasami należy korzystać ze strony http://caniuse.com/ w celu sprawdzenia czy wymagana funkcjonalność jest przez daną przeglądarkę wspierana. Do tworzenie kodu służy Bracket (http://brackets.io/).  Do opakowania stron HTML służy Cordova lub runtime CrossWalk (https://crosswalk-project.org/). CrossWalk dodaje własny runtime przez co aplikacje natywne są nieco większe niż w przypadku Phone Gap. Cordova używa API urządzenia aby mieć dostęp do specyficznych funkcji urządzenia. W celu uruchomienia aplikacji dodaje do niej ‘owijkę’ (tzw. wrapper) bazujący na WebView (http://developer.android.com/guide/webapps/webview.html). Niestety ma on pewne ograniczenia np. nie wspiera zaawansowanych funkcji graficznych z biblioteki WebGL. Te ograniczenia nie występują w przypadku WebView który bazuje na projekcie Chrominium (http://www.chromium.org/ – tego samego z którego korzysta przeglądarka Chrome). Więcej na ten temat jest w FAQ – https://crosswalk-project.org/#documentation/about/faq.

    4. Tutaj są opisane funkcje obsługi sensorów urządzenia dostępne przez Phone Gap – http://docs.phonegap.com/en/2.0.0/cordova_media_media.md.html#Media

    5. Więcej:

      1. Tutoriale jak zacząć: https://software.intel.com/en-us/html5/videos/getting-started-with-the-intel-xdk

      2. Przykładowe projekty – https://software.intel.com/en-us/html5/projects

      3. Opis opcji aplikacji XDK – https://software.intel.com/en-us/html5/xdkdocs

      4. Video dla designerów – https://software.intel.com/en-us/html5/articles/xdkdocs/app-designer-index

    6. Intel daje również akcelerator do przyśpieszenia budowania aplikacji – https://prd1idz.cps.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager (Opis: The Intel Hardware Accelerated Execution Manager (Intel® HAXM) is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology (Intel® VT) to speed up Android app emulation on a host machine. In combination with Android x86 emulator images provided by Intel and the official Android SDK Manager, HAXM allows for faster Android emulation on Intel VT enabled systems)

    7. Inne jego narzędzia – https://prd1idz.cps.intel.com/en-us/android/tools, jest nawet kompilator dla tworzenia natywnych aplikacji w C

Jest jeszcze Aptana oraz Cordova a takze Crosswalk – https://crosswalk-project.org/#documentation/samples/hello-world