2012年9月30日日曜日

JavaScriptのDate関数を試してみる

date関数は、getYearすると、1900年からの差分を返すようです。とほほにはブラウザによって変わると書いてあるが、Chromeは少なくともそうなっていますし、アンドロイド&titaniumもそうなようです。

setYearをdd.setYear(dd.getYear()+1);といった形でやると、Yearは113になります(今が2012なので)。よって、dd.setYear(dd.getYear()+1901);にすると、Yearは2013になるようです。

var ee = dd;とすると、eeはddの参照が入るようで、eeを変更するとddも変更されます。

あと、今が9月30日の場合は、1日足すと10月1日になるはずですが、こういった処理はしっかりやってくれます。例えば、dd.setDate(dd.getDate()+1);とすると、今が9月30日ならば、10月1日のdateオブジェクトに変更されてます。

<script type="text/javascript">
var dd = new Date();
document.write(dd+"<br />");

var y = dd.getYear();
document.write(y+"<br />");

dd.setYear(dd.getYear()+1);
document.write(dd+"<br />");

dd = new Date();
dd.setYear(dd.getYear()+1901);
document.write(dd+"<br />");

document.write(dd.getYear()+"<br />");

dd.setDate(dd.getDate()+1);
document.write(dd+"<br />");

dd.setDate(dd.getDate()-2);
document.write(dd+"<br />");
</script>

2012年9月17日月曜日

Titanium とAppcelerator Cloud Services(BaaS)

ついに腰を据えてとりあえずTitaniumをやることに決めました。iPhoneでもAndroidでもアプリをJavascriptベースで作れるもので、Phonegapとかよりも速いらしい。Appcelerator Cloud Services(ACS)というBaasを自社で持っているため、Titaniumとの連動性が高い点も良さそう。iPhoneであればアプリ内課金に公式モジュールが対応しているようで、Android版モジュールもあるようだが、まだバグが多いようだという情報のみ発見した。まだ出来たてのようだ。 下記は、TitaniumでACSを使ってみたサンプルプログラムのコード
var Cloud = require('ti.cloud');
Cloud.debug = true;

Titanium.UI.setBackgroundColor('#0f0');

var win = Titanium.UI.createWindow({
 backgroundColor: '#000'
});

var label1 = Titanium.UI.createLabel({
 text: 'Sample1',
 color: '#ff0',
 font: {
  fontFamily: 'Arial',
  fontSize: '70px',
  fontWeight: 'bold'},
 top: '10px'
});

var label2 = Titanium.UI.createLabel({
 text: '',
 color: '#f0c',
 font: {
  fontFamily: 'Arial',
  fontSize: '30px',
  fontWeight: 'normal'},
 top: '100px'
});

var textField = Titanium.UI.createTextField({
 value: '',
 borderStyle: Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,
 width: '200px',
 top: '150px'
});

var button = Titanium.UI.createButton({
 title: 'ボタン',
 top: '250px',
 width: '200px',
 height: '80px'
});

button.addEventListener('click',function(e){ 
 label2.text = 'User登録中...';
 
 Cloud.Users.create({
     username: textField.value,
     password: textField.value,
     password_confirmation: textField.value,
 }, function (e) {
     if (e.success) {
   label2.text = 'User登録が完了しました!';
     } else {
         label2.text = 'User登録に失敗しました。';
     }
 });
});

win.add(label1);
win.add(label2);
win.add(textField);
win.add(button);

win.open();