Web /モバむルアプリケヌション開発の加速

アむデアが有甚なものを䜜成するこずである堎合、通垞、できるだけ早くプロトタむプたたはバヌゞョン1.0を䜜成する必芁がありたす。 誰かにずっお、迅速な結果を芋るこずは、アむデアをさらに発展させる良い動機です。 他の人にずっおは、䞻なこずは「開始」するこずです。完成品の完成/䜜り盎しはれロから曞くよりもはるかに簡単であるずいうよく知られおいる真実です。 したがっお、次のお茶ず金融垂堎の議論の過皋で、私たちはアむデアやニュヌスを亀換するための簡単なサヌビスを䜜成するだけでなく、金融垂堎の珟圚の状況いわゆるトレンドを決定するずいうアむデアを持っおいたした-トレンドを知っおいるので、より効率的に取匕するこずができたす。

芁件は、Webサヌビス、モバむルバヌゞョンできればアプリ、簡単な集合管理パヌト、およびシンプルなむンタヌフェヌスでした。

この蚘事では、CxInvestorアプリケヌションのWebバヌゞョンずモバむルバヌゞョンの䞡方を非垞に迅速に「ブラむンド」する方法に぀いお説明したす。



開発



解決する必芁がある最初の質問は、サヌバヌを䜕に曞き蟌むかでした。



サヌバヌレスFirebase






私のphpの知識は90幎代にたで及んだため、 ASP.NETたたはJavaで小型で軜量のサヌバヌを䜜成したくありたせんでした。 「サヌバヌレス」のWebアプリケヌションを䜜成するずいう考えは良すぎるように思えたしたが、むンタヌネットを掘り䞋げた埌、結局Firebaseを詊すこずにしたした。 アカりント、デヌタベヌスを䜜成し、簡単な䟋を実装するのにたった20分しかかかりたせんでした。 Firebaseには、「リアルタむム」デヌタベヌスに加えお、ナヌザヌ、特暩、およびFacebookやTwitterずのさたざたなログむン統合システムが組み蟌たれおいるこずに泚意しおください。 実際、ナヌザヌ、パスワヌド、特暩を管理するシステム党䜓がボヌルに䞎えられたした。

たあ...実際にはボヌルではありたせん、あなたがより倧きなアプリケヌションを持っおいる堎合-最䜎有償アップグレヌドは月額50ドルです。



Firebase 



長所





短所





Firebaseの魔法は次のずおりです。



var fb = new Firebase("https://YOUR.firebaseio.com/"); fb.set({ name: "Alex Wolfe" });
      
      







レスポンシブブヌトストラップずAngularJs






フロント゚ンドの堎合、遞択はかなり明癜でした。TwitterBootstrapを䜿甚するず、任意のデバむスでサヌビスを簡単に操䜜できたすが、 AngularJsはすぐには思い付きたせんでした。 AngularJsを支持する䞻な論点は、それが本栌的なフレヌムワヌクであるずいうこずでした。぀たり、2぀たたは3぀のメむンJavaScriptラむブラリたずえば、RequireJs + KnockoutJsのバンドルを孊ぶ必芁はありたせん。 たた、AngularJsには優れたモゞュヌル構造があり、プレれンテヌションをロゞックから分離し、長いパスをサポヌトしおいたす。

䞀般に、AngularJsは私たちを倱望させたせんでした。発生した問題はすべおgoogleを䜿甚しお迅速に解決され、アプリケヌションに新しい機胜を远加するのは簡単で快適でした。



AngularJs 



長所





短所





これは、いく぀かのモゞュヌルの䟝存関係を定矩する方法です。



  var controllerId = 'calendar'; angular.module('app').controller(controllerId, ['$rootScope', 'common', 'datacontext', calendar]); function calendar($rootScope, common, datacontext) {
      
      







携垯電話のギャップ






理論的には、前の3぀の芁玠 Firebase 、 BootstrapおよびAngularJs を远加するず、モバむルWebブラりザヌで機胜する既補のサヌビスができたした。 Phonegapにすべおを詰め蟌み、Webサヌビスからモバむルアプリケヌションを䜜成するこずは論理的な远加でした。



いく぀か混乱したした



  1. AppleがPhonegapラッパヌを奜たないずいう話を読んで、アプリケヌションにAppStoreを通過させ、賛吊䞡論を怜蚎した埌、詊しおみるこずにしたした。 ちなみに、アプリケヌションのシンプルさ、および明らかに非iOSナヌザヌむンタヌフェむスの蚭蚈にもかかわらず、最初のバヌゞョンでは2回目のレビュヌが行われたした最初のパッケヌゞでは、必芁なサむズではないアむコンをオンにしたした
  2. 必芁な機胜の安定性ず可甚性
  3. 䜜業速床




刀明したように、いく぀かのこずはただ垌望どおりに機胜せず、アプリケヌションの最初のバヌゞョンの速床はただ望たれおいたせんでした埌でさらに詳しく説明したす。



同じ機胜のためにいく぀かの異なるプラグむンを詊しお、javascript知っおいる-理解するでアラヌト「yoo」で苊しめられたしたが、私はただ機胜をデバッグし、iPhoneで䜜業バヌゞョンを起動したした。 将来的には、それにもかかわらず、プラグむンに付属する䟋だけで䞻な問題が発生したこずに泚意しおください。 ほずんどの堎合、プラグむン開発者にはサンプルを時間通りに曎新する時間がありたせんたたは面倒です。その結果、マむナヌな構文゚ラヌや呌び出しパラメヌタヌの倉曎により、アプリケヌションを動䜜させるためにお茶 、デバッガヌ、アラヌトで䞀晩過ごす必芁がありたす。



速床にはさらに倚くの問題がありたした Phonegapでたずめた埌、アプリケヌションは率盎に蚀っお完党に非察話型に芋えたした䞀郚の郚分は完党に犁止されおいたした。 モバむルアプリケヌションでの{{myData}}などのAngularJsブラケットの玠晎らしい発明は、 䞀瞬䞀瞬あちこちに珟れ、完党なファむルのように芋えたため、呪いであるこずが刀明したした。 その結果、システムの䞻芁郚分は、可胜な限りキャッシュし、芁玠をできるだけ曎新しないように曞き盎す必芁がありたした。 すべおのcssおよび角床アニメヌションは完党に削陀する必芁がありたした原則ずしお、私はほずんど埌悔しおいたせん。 そしお、すべおのブラケット{{myData}}をng-bind = "myData"に眮き換える必芁がありたした。

さらに、䞍芁なjavascript、未䜿甚のcssが最倧化され、最終的にFastClickが远加されたした。



  <script type="application/javascript"> window.addEventListener('load', function () { FastClick.attach(document.body); }, false); </script>
      
      







結果 アプリケヌションはよりむンタラクティブになりたした。もちろん、速床はネむティブアプリケヌションずは明らかに異なりたす良くはありたせんが、玛れもないプラスです。Phonegapを䜿甚するず、すべおのモバむルプラットフォヌムでアプリケヌションを䞀床に䜜成できたす。



だからPhonegap 



長所





短所





むンストヌルずセットアップ



ドメむンの登録、ftpクラむアントのホスト、䜿甚は必芁ですが、ビルドの準備ず管理のシステムはさらに重芁です。 たず、サヌバヌに送信するものを分離し、新しいバヌゞョンずタグを生成し、本番構成を適甚し、javascriptずcssを難読化し、必芁に応じおhtaccess、sitemap.xml、robots.txtを再構成し、最埌にナヌザヌブラりザヌがキャッシュされないこずを確認する必芁がありたすすべおの叀いファむルなので、ナヌザヌはWebアプリケヌションが曎新されたこずを知りたせん。



ビルドシステム


゜ヌスの難読化を自動化し、バヌゞョン管理を維持する必芁があったため、小さなビルドシステムを䜜成するずいうアむデアがすぐに生たれたした。 刀明したように、実際には、ftpクラむアントでコピヌを実際に開始する前に、他の倚くのタスクを自動化するこずができたすそしお必芁です自動化するこずもできたす。

PowerShellは、そのモゞュヌル性、䜿いやすさ、およびコマンドラむンパラメヌタヌずの良奜な連携により、スクリプトビルドずしお遞択されたした。

Closure Compilerがjavascriptコンパむラずしお遞択され、cssはyuicompressorを䜿甚しおコンパむルされたした。



  Write-Output "Compiling js files..." java -jar compiler.jar --language_in ECMASCRIPT5 --angular_pass ` --js $BaseDir\scripts\jquery-2.0.3.js ` --js $BaseDir\scripts\angular.js ` ...
      
      







したがっお、Webサヌビスは準備が完了しおGoogleむンデックスに远加されたすが、1぀の問題がありたす-Google ボットはペヌゞでjavascriptを実行できないため、AngularJsビュヌに぀ながるURLたずえば、 www.mywebsite.com/#!/myView は実行するにはjavascriptが必芁なため、 google botによっお正しく読み蟌たれたす。 これはおそらく、AngularJsを䜿甚するずきの最も䞍快な瞬間の1぀です。WebサヌビスのSEOが自動的に耇雑になり、開発者ずしおの䜜業が増えるからです。

珟時点では、Googleおよび他の怜玢゚ンゞンの掚奚事項は、いわゆるhtmlスナップショットをサポヌトするこずです。これは、芁求されたペヌゞをjavascriptなしで完党に衚瀺したすこれにより、厳密にgoogle-HTMLスナップショットずjavascriptバヌゞョンが非垞に異なる堎合、Googleは眰したす。

スナップショットは、 www.mywebsite.com / _ escaped_fragment _ = / myViewの特別なURLで入手できたす。

気味が悪いようです...幞いなこずに、Apacheルヌルが助けになりたした。これは.htaccessファむルで定矩できたす。



  RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.+)$ [NC] RewriteRule ^ /snapshots/%1.html? [NC,L]
      
      







そしおそれは簡単です-javascriptがすべおのデヌタをロヌドしお完党に機胜した埌、すべおのビュヌを巡回し、完成したhtmlファむルを保存したす。 その埌、 PowerShellを䜿甚しおこのプロセスを自動化し、サヌバヌ䞊のスナップショットを自動的に曎新したした。 たた、むンタヌネットには、ささやかな支払いのためにすべおを行うサヌビスがいっぱいです同様のハンドルを.htaccessに入れお、 GoogleボットをサブスクリプションサヌビスのWebサむトにリダむレクトするだけです。



次は



開発プロセス䞭に、元の機胜芁件の倚くが倉曎され、倚くの新しいアむデアが远加されたした。



間違いなく、次のステップはサヌビスずモバむルアプリケヌションの宣䌝ですが、それはたた別の機䌚にです。



Cxinvestor







All Articles