IT坊主でいこう!

坊主をしながらITのことに詳しくなりたい!
iphoneアプリ、Webアプリ等頑張る!

[Titanium]Twitter上のタイムラインを取得する[Mac]

2012年06月09日 18時38分37秒 | Titanium
作りたいものがtwitterとの連携だったので、今回はtwitterとの連携を試します。
すでに認証等やってしまったので一部画像は用意できませんのであしからず。

まず参考にしたのがこちら
OAuth認証してツイートしてタイムラインを取得できるiPhoneアプリを10分で - もぎゃろぐ
上サイトを文章に起こした形なので、下の文章でわからないときは動画で確認してください。
サクサクとコード等書いていますので、追えないときにこちら見るといいかも。

Twitter Developersを開き「Create an app」をクリック
・アプリについての入力項目が出てくるので入力

・登録すると、ConsumerKey、ConsumerSercret等表示されるのでメモっておく
・Titaniumにてプロジェクトを作成する
・Twitterの情報をとってきてくれるAPIをプロジェクトに追加する。
 今回は有名っぽい上記サイトのmogya / tm_twitter_api - githubを使用
・GitHubページに書かれているHowToの
Ti.include("lib/twitter_api.js");
//initialization
var twitterApi = new TwitterApi({
consumerKey:'YOUR CONSUMER KEY of twitter API',
consumerSecret:'YOUR SECRET of twitter API'
}
);
twitterApi.init();

こちらをapp.js等に書く。
consumerKey,consumerSecretの値は、先ほどメモした値を書く。

これで下準備は完了、あとはメソッドを使用して情報を取ってくる。


var tableView = Titanium.UI.createTableView();
var tableStyle = require("style/table");
twitterApi.statuses_home_timeline({
onSuccess: function(tweets){
tableView.setData([]);
for(var i=0;i<tweets.length;i++){
var tweet = tweets[i];
var tableRow = Titanium.UI.createTableViewRow(tableStyle["tweetRow"]);
var userView = Titanium.UI.createImageView(tableStyle["userImage"]);
var tweetLabel = Titanium.UI.createLabel(tableStyle["tweetText"]);
userView.setImage(tweet.user.profile_image_url);
tweetLabel.setText(tweet.text);

tableRow.add(userView,tweetLabel);
tableView.appendRow(tableRow);
win1.add(tableRow);
// now you can use tweet.user.name, tweet.text, etc..</div>
}
Ti.API.info("Success statuses of home timeline!");
},
onError: function(error){
Ti.API.error(error);
}
});


こんな感じにonSuccess内で処理を書く形らしい・・・。
最初このメソッドからデータを配列で取得してから、ゴリゴリ処理を書こうとしたら一向にデータが取れなくて詰まった。

シミュレータを立ち上げるとどのアカウントで認証するかアカウント情報を入力する画面に遷移するので入力。
この後、認証番号みたいなのが表示されるけどこのAPIならそこら辺すっ飛ばしてくれます。

上手くいっていたら


こんな感じで表示されるはず、これはtwitterApi.statuses_user_timeline()を使用してます。


今回、APIいれて色々いじってたけど
・Titanium Studioはコード補完がかなりしょぼい
この一言で。
自分で入れたAPIは補完の候補に上がらないし、というか同じコンテキスト内で宣言した変数ですら補完してくれないってなんなんですか
何かいいエディタ探そうかなー。

あと、すごい適当にgooブログ選んだけどやっぱり使いづらい・・・。特にコード載せるの・・・。
技術専門のブログないかも探そう

葬儀会社の所得隠しが総額5億

2012年06月06日 14時24分27秒 | 雑記
僧侶からお布施還元…葬儀会社など5億所得隠し - Yahoo! Japan ニュース

宗教法人は公益法人でありつまり利益をもとめない団体ということです。
葬儀で頂けるお布施は遺族の方から葬儀という宗教のとり行いに対する感謝やお礼の形そのものです。
僧侶が頂いたお布施は宗教法人として、自房の修繕や檀家の方のために使用するように定められています。
そこに利益はないため、税法上では非課税とされています。

>セクトの社長は「税務当局の指導に従った。お布施には不透明な部分があるのは事実」と話している
今回問題となった会社は営利社団法人のようです。
いくらお布施といえどもそれを営利社団が取得し、尚かつそれが仲介手数料としているのであれば
当然課税対象になるのではないのですか。
法律をほんの少しかじった(本を1冊読んだ)だけの私でさえ明白なことなのに、
仕事としているこの人たちがわからないわけないでしょう。

この件で一番信用が落ちるのは実際に遺族や檀家さんと話をする僧侶だと思います。
宗教離れが進んで、無宗教葬なんてものまで出てきて寺院も厳しい状態になってきています。
経緯はわかりませんが、数年前に実際に自己破産した寺院が出たというニュースもありました。

何が言いたいかというと


葬儀屋が幅をきかせるのは本当にやめてくれ!


違うコンテキスト間での関数や値のやり取り[Mac]

2012年06月06日 13時20分06秒 | Titanium
Titaniumで始めるモバイルアプリ作成の基礎知識 - Smart & Social

この記事によると
コンテキスト(Javascriptファイル)という1つのスコープの範囲内で変数やメソッド、イベントを扱える。
これを別のコンテキストをやり取りする場合

・Titanium.include()でファイルをインクルードする
で、そのファイルの変数やメソッドを参照できるようになる。
ただこれだと名前空間が混ぜ混ぜで危ないのではないか。

調べたらrequire()も使えるとのことなので

var Inc_hello = require("sample/hello_world.js");
Inc_hello.HelloWorld();

みたいに書いた方がいいのではないだろうか、もしくはそもそもコンテキストを分けるか。

requireでTitaniumのインクルードパスの問題を解決する - ひげろぐ
ただここによるとAndroidが実機だとrequire()したときに値が取れてない場合があるらしい、とか
色々書かれていてほんとに実用的なのかわからない。
最終更新では、Appceleratorの開発者ブログでCommonJSライクで書いているとのことなので使っていいのかな。

とりあえず、自分で作るときはこのスタイルで一度作ってみよう。

話がずれたけど
Eventを別のコンテキストに投げたい場合はfireEvent()を使えばいいらしい。
image_view_animated.jsでも
Titanium.App.fireEvent('show_indicator');
として、app.jsに書かれたロード表示を呼び出してた。

なるほど、動作を共通部分で実装しといてこれでイベント投げると。

少し意味合いが変わるけど
Titanium.App.setProperties
を使えば、アプリレベルで値を保持できる。
アプリを終了時に外部に保存、起動時に再度ロードと書かれているところを見ると
ここにログイン情報等を配置しておくのかな。
どこかに明確に書いている記事ないかなー。

Kitchen Sink等からTitaniumを学ぶ BaseUI Window その2[Mac]

2012年06月06日 06時47分50秒 | Titanium
前回の続きから

Titanium.Media.vibrate();
これでスマホの振動機能が使用できるらしい、けど実機で現状試すことができないので知識程度に。

w.setLeftNavButton(b);
ちなみにこれでツールバーのの左端にボタンを設置できる

window.open({
fullscreen:true

});

これでウィンドウをフルスクリーン表示できる。
ゲーム等はこれを使ってるのかな。で、タッチで隠してる操作スクリーンを表示するのか。


var toolbar = Titanium.UI.createToolbar({
items:[hello,flexSpace,label, flexSpace,close],
top:0,
borderTop:false,
borderBottom:true

});

ツールバーを自分で作ってカスタマイズもできるみたい。
borderTopは

Titanium.UI.currentWindow.setToolbar([flexSpace,camera, flexSpace,tf,flexSpace, send,flexSpace]);
わざわざToolbarオブジェクトを作らなくても、中に設置したいオブジェクトを指定するだけでもいいらしい。

記事わける必要なかった・・・

宗教法人と収益事業

2012年06月05日 22時46分00秒 | 法人税務
宗教法人は一般の会社と違い、利益を追求するものではない。
よって、いわゆる税金というのは払わなくてよい。
ただし宗教法人でも税法上の「収益事業」を営む場合は
法人税、固有資産税等を支払わなければなりません。

また寺院で勤務する役僧に対して支払う給与については同様に所得税がかかります。
収益事業は税法で34業種あり、これのいずれかに該当すればそれに対する納税を義務づけられます。

34業種を全て列挙するのは他のサイト等ですでにやっているので
寺院が運営しているよく聞く例を挙げますと

不動産貸付業
物品販売業(一般的なローソクや線香等の販売)
旅館業(宿坊)
駐車場業
技芸教授業(幼稚園運営)
でしょうか。
こちらで34業種と結びつけたので間違いがあるかもしれません。