====== Mobile ===== [[http://sencha.linuxfanclub.gr/examples/index.html|demo]] (best viewed with chrome) ===== Android ===== ==== Build ==== Εάν για κάποιο λόγο δεν γίνεται σωστό build από το περιβάλλον του eclipse μπορούμε να το κάνουμε και από την γραμμή εντολών Αρχικά εγκαθιστούμε το ant apt-get install ant Στην συνέχεια δημιουργουμε το build.xml αρχείο στον φάκελο του project μας. Εκτελούμε από τον φάκελο του android sdk /opt/android-sdk-linux/tools/android update project --target 3 --path ~/workspace/myproject/ Τροποποιούμε το αρχείο build.xml αν χρειαστεί Τέλος εκτελούμε ενώ είμαστε στον φάκελο του project ant debug Δημιουργήθηκε το αρχείο bin/myproject-debug.apk Με ένα εργαλείο όπως το airdroid μπορούμε να το στείλουμε στην συσκευή μας (κινητό ή tablet). θα πρέπει βέβαια να έχουμε ήδη ενεργοποιήσει στην συσκευή μας την δυνατότητα εγκατάστασης 3rd Party Application και το USB debugging === sencha === Μετακινούμε όλο το sdk σε έναν φάκελο που γίνεται published από τον apache Ελέγχουμε από έναν browser ότι όλα είναι ok Από την γραμμή εντολών μεταφερόμαστε στον φάκελο του sdk, π.χ. cd ~/public_html/touch-2.3.1/ Εκτελούμε sencha generate app myapp ../myapp Αυτό θα δημιουργήσει έναν φάκελο ~/public_html/myapp Ελέγχουμε από έναν browser ότι λειτουργεί το sencha και προχωράμε σε αλλαγές Μετονομάζουμε τον φάκελο .sencha σε sencha γιατί διαφορετικά δεν θα γίνει include στο πακέτο μας Τροποποιούμε το αρχείο index.html ώστε να ζητάει το microloader script μέσα από τον φάκελο sencha Αντιγράφουμε τον φάκελο myapp στον φάκελο assets/www στον android/phonegap project μας στο eclipse Ορίζουμε να φορτωθεί η σελίδα myapp/index.html από την κλάση webview ==== Run ==== Για να στείλουμε σε κανονική συσκευή το πακέτο apk μπορούμε να χρησιμοποιήσουμε το airdroid === Virtual Devices === Εκτελούμε τον avd manager από τον φάκελο tools του sdk ως εξής ./android avd Δημιουργούμε διάφορες συσκευές με διαφορετικές εκδόσεις του android, αρχιτεκτονικής intel και εκκινούμε μια από αυτές Στέλνουμε το apk σε αυτήν με την εντολή adb από τον φάκελο platform-tools του sdk adb install -r ή αν έχουμε παραπάνω από μια συσκευές να εκτελούνται ορίζοντας και το id της π.χ. adb -s emulator-5554 install -r ==== TroubleShooting ==== === Αδυναμία upload / εγκατάστασης πακέτου=== Εάν δεν μπορεί να εγκατασταθεί το πακέτο apk στην συσκευή μας ελέγχουμε το αρχείο AndroidManifest.xml να έχει minSdkVersion < = από αυτήν που υποστηρίζει το κινητό μας === Android 4.0 === Λόγω κάποιον bugs και πιο αυστηρών περιορισμών ασφαλείας θα πρέπει να γίνουν τα παρακάτω για να φορτωθεί το sencha framework σε android > 4.0 Εισαγωγή της παρακάτω εντολής στην αρχή του αρχείου app.js Ext.Loader.setConfig({ disableCaching: false }); Τροποποίηση του αρχείου sencha/app/microloader/development.js ώστε να μην φορτώνει το περιεχόμενα του bootstrap.json με XMLHttpRequest. Αντί για αυτό τα παρέχουμε hard coded /* var xhr = new XMLHttpRequest(); xhr.open('GET', 'bootstrap.json', false); xhr.send(null); change also xhr.responseText -> xhr_responseText */ var xhr = new String(); xhr_responseText="{\"id\":\"789a692b-1ff8-4d49-9ffd-0aadf47b4f26\",\"js\":{\"path\":\"touch/sencha-touch.js\"},{\"path\":\"bootstrap.js\"},{\"path\":\"app.js\",\"update\":\"delta\"},\"css\":{\"path\":\"resources/css/app.css\",\"update\":\"delta\"}}" var options = eval("(" + xhr_responseText + ")"), scripts = options.js || [], styleSheets = options.css || [], i, ln, path, platform, theme, exclude; Ορισμός των κλάσεων που χρησιμοποιούνται στο πεδίο requires ώστε να μην φορτώνονται δυναμικά και καθυστερούν υπερβολικά. Π.χ. requires: [ 'Ext.MessageBox', 'Ext.Toolbar', 'Ext.Button' ], === Άλλα === * #applyStore The specified Store cannot be found * http://www.sencha.com/forum/showthread.php?186957-List-%E2%80%9C-WARN-Ext.dataview.List-applyStore-The-specified-Store-cannot-be-found ===== Πηγές ===== * Applaud phonegap + eclipse plugin * download : http://www.mobiledevelopersolutions.com/home/start * first app : http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt0 * phonegap * http://phonegap.com/developer/ * * sencha * download : http://www.sencha.com/products/touch/download/ * Instructions : http://ventusmoso.com/phonegap/sencha-touch-2/build-an-android-app-with-phonegap-2-and-sencha-touch-2-in-eclipse/ * http://docs.sencha.com/touch/ * http://www.sencha.com/learn/a-sencha-touch-mvc-application-with-phonegap/ * classes * http://www.sencha.com/learn/sencha-class-system * sencha - android packaging * http://andidog.de/blog/2012/06/packaging-a-sencha-touch-2-application-with-phonegap-for-android/ * smartgwt mobile * http://smartgwt-mobile.smartclient.com/#Widgets ==== Android coding ==== * WebView back * http://stackoverflow.com/questions/6077141/android-webview-how-to-code-the-back-button * android java to html5 javascript bridge * http://developer.android.com/guide/webapps/webview.html#BindingJavaScript * http://mobile.smashingmagazine.com/2013/10/17/best-of-both-worlds-mixing-html5-native-code/