読者です 読者をやめる 読者になる 読者になる

TitaniumMobile勉強記

Web系エンジニア向けのキャリアアドバイザーやってましたが現在はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連(Node.js、Titanium)あたり

Node.js勉強したことで得られた気づきを今後まとめていきます

先月の中旬から、社内向けにスマフォアプリを作っていたため、ブログの更新が滞りがちでしたが、そちらのリリースを昨日行い、一段落しました。

社内利用限定ですが、気合を入れて、アプリのアイコンも作りました。

f:id:h5y1m141:20140115073017p:plain

ちなみにアプリのコンセプトが、

「てくてく歩いてポンとスタンプを押す感じのチェックインアプリっぽいやつ」

ということだったので、こんな感じになりました^^;

今回、作ったアプリは単なるチェックインアプリなのですが、Titanium+ACSで、基本機能を提供してますが、それ以外に

  • ACS上のデータをベースに週次データを自動集計するcron的なツールを別途Node.jsで開発
  • ACS上のマスターとなるデータ(チェックイン先となる企業情報)をNode.js+express+Jade

にて開発しており、フロント側からバックエンドの一部まで割りと全部作るようなことにチャレンジしてみました。

大小含めて、色々気づきだったり、勉強になったことがあるのでその辺りのことを今後ブログでまとめておこうと思ってます

Node.js側の世界を少し垣間見たことで得られた気付き

Node.jsベースのツール作る過程の中で、

「外部のWeb APIを利用してリクエストを投げて、もしも処理が失敗した場合に、再実行する」

という処理の再実行処理をする部分で、retryというのを見つけたのですが、もしかしたらこういうのを使うと、Ti.Networkとかで接続に失敗した時に再トライで利用できそうな気がしてます。

また、ツールをほぼ作り終えた頃にNode.js & Expressで最初にいれるべきモジュールという記事を見つけそこで紹介されているlog4jsとか、configあたりも、使えそうな気がしてるので、検証しながら書いていきたいと思ってます。

今回、Node.js使ったツールを作ったことで、Titanium Mobileでの開発でも使えそうなnpmモジュールが実はあるんじゃないかなぁとふと気づきました。

Titanium CLIが元々Pythonで書かれていたのが、バージョン3.2になって、Node.js-based command-line toolになったように、元々、Titanium周辺の技術要素は、Node.js由来なものが結構あるのかなと思います。

以前、もくもく会でyagi_ さんが、もっとNode.jsな人と関わったほうがいいというようなことを言っていたような記憶があるのですが、自分が今回Node.jsベースのツールを作ってみて、その意味が理解できた気がします。

Node.jsの勉強会とかあったら、今後積極的に参加して、LT出来るようならチャレンジしたいなぁと思ってます

Node.jsでJade使ったのでこれを機会にAlloyにも移行したい

Node.js+express+Jadeな構成でWebのツールを作って、Jadeに少しづつ慣れてきたので、Alloy+CoffeeScript+Jadeな感じでバリバリ開発出来る方法もあるみたいだし、Titanium Classicな環境から卒業して、Alloyベースで基本作業する方針にしたいと思っています。

今後書いていきたい内容のタイトル案

思いつきもあるのですが、今後書いていきたい内容のタイトル案だけ箇条書きでまとめておこうと思います

  • Titanium関連

    • jasmineの最新版の活用方法
    • Titanium ClassicなアプリをどうやってAlloyベースに移行していくのか
    • 今更ながらGruntの利用方法
  • Node.js

    • express概要
      • app.jsの設定
      • セッション管理をよく理解できずにはまりました
      • セキュリティ対策でCSRFミドルウェアを導入した
    • jasmineの使い方
    • Herokuの使い方
      • Heroku Schedulerの使い方とか
      • New Relicの設定