40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

Titanium Mobile

Google Fusion Tablesと連携する処理試してみた

TitaniumのAdventCalendarで@kinofumiさんが紹介してたGoogleFusionTablesですが 元となるデータをCSVデータ等からインポート出来るのはもちろん、Webインターフェース上でも入力できる 座標情報を格納するためのLocationというColumnがあり、地図上に手軽に…

はじめようTitanium+JavaScriptでスマホアプリ開発カフェ勉強会Vol.2をやりました

さっき帰ってきて、かなりエネルギー消耗して疲労困憊な感じはあるけど、終わった後の充実感もあるし、アンケート結果見てて「資料わかりやすかった」というコメントを貰うと、かなりの時間かけて準備したかいがあるなぁーという気持ちになるので、これを糧…

【Titanium Advent Calendar 2011:十三日目】Titanium Mobileがきっかけでスキルアップになるのでは?

この記事は、@astronaughtsさん企画の「Titanium Advent Calendar 2011」向けに書いています。 Who are you? 本業は、ITエンジニア/クリエイターな仕事をしている求職者の方を対象に、仕事探しのサポートをするキャリアコンサルタント(エージェントという方…

はじめようTitanium+JavaScriptでスマホアプリ開発カフェという勉強会をやりました

※今回スイーツタイムにみんなに食べてもらったドーナッツは、nicoドーナツというこんな感じ↑のお店で買いました一昨日にうちの会社のイベントの一環で、Titaniumの勉強会やりました。Webデザイナーな人がもっと参加すると見込んでいたのですが告知手段がよく…

Google Reader用のTitanium モジュールをJavaScriptで作り始めました

タイトルそのままですが、CommonJSなスタイルになれる勉強も兼ねて作り始めました。前回のエントリで assetsフォルダ配下に、com.twitter.h5y1m141.googleaccount.js作ってコードを書く。 ということを書いていましたが、上記のcom.twitter.h5y1m141.googlea…

JavaScriptでTitanium Module作ろうと思ったらbuild.pyエラーになった原因&解決方法

http://d.hatena.ne.jp/kaz_konno/20111124/1322153970:title=という素敵なエントリを読んだのと、来週のTitanium勉強会の資料作成一応終わった段階だったので、試しにJavaScriptでTitanium Module作ろうと思ったらちょっとハマったので、ちょっとメモ build…

勉強会用のサンプルアプリで簡易Webブラウザ作りました

はじめようTitanium+JavaScriptでスマホアプリ開発カフェという形で、全6回にわたる勉強会をやることにしました 勉強会やることにした背景 今回参加者で想定してるのはHTML/CSSはわかるというWebデザイナーな人でこういう方に、少しでもスマフォアプリ開発…

雛形を自動生成するRubyスクリプト書いた

書きたいネタはいくつかあったのですが、どうしてもコード書きたい気持ちのほうが強くついつい更新サボってました。"以前書いたエントリ"以降、実際に手を動かしながら色々やっているうちにシングルコンテキストな書き方にも大分なれてきたのと同時に、RSSリ…

tweetaniumのソースコードリーディング:model.js編

@donayamaさんに褒められたのでtweetaniumのソースコードリーディングの続き書くことにしましたwwUI部分についてこれ以上書けるほどのネタがないので、Modelに関連する所ちょっと取り上げようと思います ベースとなるmodel.js 「tweetaniumはTwitterクライ…

tweetaniumのソースコードリーディング

自分が作ってるアプリの参考になるかと思ってtweetaniumのソース読んでいました。全部をくまなく読んだわけではないものの、最終的には自分のアプリで応用するのは難しいかなぁと判断しました。ただせっかく読んだソースなので理解した内容をまとめようかと…

titanium でシングルコンテキストな書き方にチャレンジ

Capistrano勉強しようと決めてたのですが、@kaz_konnoさんが 私が #titanium でシングルコンテキストを使う一番の理由は、名前空間汚染を防ぐ事よりも、メモリ管理面、パフォーマンス面共に優れているからです。 http://twitter.com/#!/kaz_konno/status/118…

もぎゃさんが作ったユニットテストライブラリに変更した

Titanium関連で参考にしている情報源の1つのもぎゃろぐさんのTitaniumの単体テストを読み使いやすそうだったのと、自分が作っているアプリで、いまいち仕様が固まってない所があったのでテスト書きながらそのあたりの仕様を固める意味も含めてちょっと使っ…

画面下部までスクロールしたタイミングでTableViewの情報更新する

RSSリーダーやtwitterクライアント等でよくあるUIとして、画面下部までスクロールしたタイミングで、サーバ(もしくはローカルにキャッシュしてある)情報を追加して読み込むというのがあるかと思います。自分のこれまで作っていたアプリでは、このようなUIを…

Tableviewデータを空にして渡したら、正しく表示されないの解決方法

Tableviewデータを空にして渡したら、正しく表示されない問題についてというエントリで、少しでもお役に立てればと思って解決方法書いてみました。 var win1 = Titanium.UI.createWindow({ title:'test' }); var tab1 = Titanium.UI.createTab({ window:win1…

ナビバーのボタンクリックで画面遷移出来るようになりました!

前回ブログ書いたすぐ後に TitaniumMobileで、window.animate({transition:xxxx},function(){}); ってやればコールバック関数呼び出せるんだー もっと早くこれに気づいてれば、この1ヶ月こんなに悩むことなかったけどこれで光が見えてきた!! twitterより …

画面遷移で最初・最後のページにたどりついた処理に悩み中

前回のエントリから2週間近く更新滞った理由というのは画面遷移で最初・最後のページにたどりついた処理に悩んでいるから。ButtonBarとして配置したボタンをクリックした時にイベント発火されて、該当のページに遷移するんだけど、そのページの表示が完了し…

050-エントリ一詳細ページのイベントハンドラの処理その3

Googleの検索で、「Titanium xxxx」みたいな感じで思いつく限りのキーワードを入れて関連しそうな情報をチェックしたり、Githubでお手本になりそうなソースを探したりと色々なことをやってきて、これ以上進展がないかなーと思ってました。そんな状況の中で、…

049-エントリ一詳細ページのイベントハンドラの処理その2

Titanium Mobileで開発初めて、関連するエントリについては001から連番ふってきたけど、あと1つで50エントリ。自分の当初見込みでは30エントリ位でとりあえず形になるものを作る予定だったけど、全然見積もりが甘かったなーさて、ここから本題。先月書いた…

048-エントリ一詳細ページのイベントハンドラの処理

前回のエントリでボタンクリック時のイベントハンドラの処理で実装しないといけない点がいくつかあるとメモしておきました。 一番新しい/一番古いエントリかどうか判定した上で、適切なボタンを配置 エントリ一覧画面生成する際に、Ti.UI.createTableViewRow…

047-各エントリの画面遷移について考える

画面イメージについての考え BylineのようなGoogleReaderクライアントのような画面遷移出来るようなUIをどうにか実現できない考えています。 アプリケーション起動時にはエントリ一覧を表示(※下記画面キャプチャ1) エントリのタイトルをクリックすると、…

046-SQLite活用したJSON形式のファイルの保存・読込処理

SQLiteを活用してJSON形式のデータを保存できるようになったので、今度は読込について考えました。 実装方法に最初はまる SQLiteに保存する時に //省略 var res = this.db.execute( 'INSERT INTO entries (blogger,permalink,title,html_body,post_date) VAL…

045-MVCのControllerの役割を見直すその4

まず現在のJSONフォーマット 以前書いたエントリでは投稿した日付をIDとして活用すればいいかなぁと考えていたものの、何となく処理をやりづらそうな何とも言えないモヤモヤ感がしてました。twitterのAPIで返すJSON形式を眺めていたら、下記のような形式が良…

043-MVCのControllerの役割を見直すその2

今までEntryクラスでエントリ一覧のキャッシュの保存と読み出しをこんな感じするようにしていました Entry = function(){//略}; Entry.prototype = { saveCache:function(json,page_number){ /* ブロガー名+現在のページ数.jsonというファイル名で ローカル…

042-MVCのControllerの役割を見直す

エントリ情報をローカルにキャッシュすることは出来て、これで完成間近・・・と思ったのですが「Aというブロガーは何ページ目まで読み込んだのか誰(=どのクラス)が管理するべき?」という部分で疑問が出てきました。Entryクラスは、エントリ情報を管理す…

041-エントリ情報をローカルにキャッシュする処理実装しました

前回のエントリで下記のようなことを書きました。 ※このブログを書き始めてコード読み返していて気づいたのですが、ローカルのキャッシュ処理する際にブロガー毎にキャッシュするようにしてないから、この部分は別途書きなおす必要が有る。。 Titanium.App.E…

040-insertRowAfterは利用せずTableView.setDataを活用するやり方に切り替えました。

タイトルそのままですが、insertRowAfterにこれ以上固執してもうまくいかない気がしてきたので違うやり方を検討しました。 TableView.setData(data)を活用した処理の流れ 自分はまだ1.5.1使っているのでこのTitanium Mobile のAPIドキュメントを改めて読んで…

039-insertRowAfter使った処理がうまくいかずにはまってます

CreateTableViewのreceive()は、エントリ一覧のオブジェクトに加えて、iPhone上で何ページ目が表示されているのかそのページ数を受取、2ページ目以降ならば、TableViewのinsertRowAfterメソッドを使って、rowを動的に追加しようと考えました。結構簡単にでき…

038-MVC的に分割しはじめました

Titanium Mobile使ってアプリ作るときに、MVC的にクラスをわけるのがどこまで効果があることなのか正直わかっていません。ただ、下記2点を考えると、個人的には「アリ」かなぁと思っています。 今つくっているアプリ以外にも、GoogleReaderとかGitHubリーダ…

037-次のxxx件を読み込む処理の実装は半分完成

実際に実装しはじめると自分のスキルの無さを痛感してます。。。簡単に出来ると思ったけど最後の最後でうまくいかないのでその点についてまとめておきます 処理の流れについて簡単 アプリ起動。5件分のエントリを表示 「次の5件を読み込む」という箇所をクリ…

036-次のxxx件を読み込む機能について考察

RSSリーダーのようなアプリの場合、起動時に数件読み込み、ボタンクリック等のイベントをトリガーにして次のxx件を読み込むというのはよくある処理だと思うのでこれについて考察してみました そもそもaddEventListenerはどこに仕込むのか 自分は最初この部分…