ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

Apache CordovaとXamarinのどちらを選ぶべきか

ある案件でスマフォアプリの開発が必要になりました。
これまで開発したことがなく、必要な知識を得ようとしています。

仕様はまだ未確定ですが、iOSアプリとAndroidアプリの両方を開発することだけは決まっています。
両方に対応したアプリを開発できる開発ツールの選定が必要になり、調べたところ、Apache Cordova(アパッチ・コルドバ)Xamarin(ザマリン)が候補になりました。

開発言語がそれぞれ、Apache CordovaはHTML 5/CSS 3/JavaScript、XamarinはC#のようです。
できることに差があるのかは、まだわかっていません。

環境構築は、Xamarinの方が簡単そう

Apache CordovaとXamarinの環境構築方法を探すと、どちらもCodeZineに記事がありました。
codezine.jp

codezine.jp

環境構築のわかりやすさの基準で見ると、Xamarinの方がGUIだけでできそうで簡単そうに見えます。

f:id:AJYA:20170513004002j:plain
photo credit: Janitors Samsung Galaxy S6 Edge via photopin (license)


開発言語にこだわりがないので、他の要素で決めるしかないところに、Xamarinにはアルファ版とはいえ便利そうなツールがリリースされました。
internet.watch.impress.co.jp

こういったところも加味しながら、どちらにするか決めていきたいです。

JavaScript:要素が有効な場合のみ、チェックされているか判定する方法

ラジオボタンAの選択によって、別のラジオボタンBの有効/無効状態を切り替えている場合に、JavaScriptラジオボタンBがチェックされているかチェックをすると、ラジオボタンBが無効状態でもチェックはできてしまいます。

そのため、ラジオボタンAの選択を確認して、ラジオボタンBが有効になる選択をしていたら、ラジオボタンBのチェックをするようにしています。

if ($("input[name=radioa]:checked").val() == "1") {
    if (!$("input[name=radiob]").checked()) {
        alert("Error");
    }
}

f:id:AJYA:20170511125933j:plain
photo credit: Christiaan Colen JavaScript source code ransomware via photopin (license)

要素自体の有効/無効状態を判定に使う

上記の方法でも目的は果たせていますが、ラジオボタンAがラジオボタンCに変わったり、別の要素に変わると、その都度修正が必要になります。
そのため、他の方法がないかと考えて、ラジオボタンB自体が無効かどうか判断できればいいのではと思いつきました。

どうすればラジオボタン自体が無効かどうか判断できるか調べたところ、typeof演算子を使えばできました。
developer.mozilla.org

実際のソースコードは以下のようにしました。

if (typeof $("input[name=radiob]").attr("disabled") === "undefined") {
    if (!$("input[name=radiob]").checked()) {
        alert("Error");
    }
}

typeofで、無効状態が未定義であるということは、有効状態ということになるので、その後の処理を行っています。
これで少しはわかりやすくなった気がします。

キャラクターショーに2回出かけたりしていました

今週のお題ゴールデンウィーク2017」で、ゴールデンウィーク前は体調を整えたいと書いていました。
ajya.hatenablog.jp

結果は、僕と子どもは完治したようですが、妻はまだ完治にはいたっていないです。
書類の片付けは、妻は進んでいますが、僕は全然進んでいません。

f:id:AJYA:20170510130137p:plain

なんだかんだと出かけていた

記事にも書きましたが、おもちゃのリサイクルやキャラクターショー、ちょっと遠いところにも出かけました。
子どもはまだ治っていなくても外で遊びたがるので、どこにも出かけないということはなかなかできないですね。
ajya.hatenablog.jp
ajya.hatenablog.jp
ajya.hatenablog.jp
ajya.hatenablog.jp

自宅では除草剤を撒いていました。
1週間経ってずいぶん雑草の色が変わってきています。
ajya.hatenablog.jp


5日間あっという間だった気がします。
充実した日々を過ごしていたということなんでしょうね。