Denchin 0.2.6 公開
本日、バージョン0.2.6を公開しました。約半年ぶりのバージョンアップですね。そんな久しぶりのバージョンアップですが、何も華々しいことはありません。
今回の変更は、Google Playでコメント頂いていた、いくつかの不具合の修正です。
変更内容
1.メイン画面のオプションメニューから履歴クリア選択時に、エラー発生し、履歴を消せなかった問題を修正。
2.メイン画面における前回充電の充電量が100%にならない端末がある問題を修正。
3.ウィジェットの右と下の余白が、多少広かったのを微調整。
4.DB処理を見直し。
その他
Google Playのコメントにて、端末再起動時に、Denchinが自動起動しない問題が報告されています。私の手持ち端末では、現象が再現しないため、原因が特定出来ていません。
ネットの情報では、Android OS 4.0 (ICS)では、マニフェストファイルの設定(targetSdkVersion)が未設定だと、自動起動の権限が認識されないことがあるようです。DenchinでもtargetSdkVersionを設定していなかったので、今回のリリースでは、設定を行なってみました。
もし、原因を特定できるような情報をお持ちの方がいましたら、情報提供をお願いします。当ブログやGoogle Playへのコメントでも構いませんし、Google Playに公開してあるメールアドレスでも構いません。
HTML5のBlobで、動的データのダウンロードを、わずか3行で実装できた。
JavaScriptなどにより、クライアント側で動的なデータを作成し、それをローカル環境に保存したいと思い、サンプルプログラムを作成してみました。実装技術として、HTML5のFile API機能におけるBlobを使いました。
わずか3行で実装できてしまうのですね。便利ですね。さらに、HTML5なので、最近の主要ブラウザ(IE 10.0以降、Firefox 13.0以降、Chrome 20.0以降のはず)では動作しますし、現在動作していないブラウザ(Safari?)でも、HTML5対応が進めば、動作するようになるはず。
では、作成してみたサンプルプログラムを説明します。
ポイント
ポイントは、この3行です。content変数には、ダンロードしたいファイルのテキストデータが入っています。id変数は、ダウンロード用リンクのaタグを特定するid属性です。
var blob = new Blob([ content ], { "type" : "text/plain" }); window.URL = window.URL || window.webkitURL; $("#" + id).attr("href", window.URL.createObjectURL(blob));
1行目で、contentのデータを、Blobオブジェクトとして保持しています。2行目では、Chrome, Safariにおいて、URLオブジェクトの変数名が異なるので、名前を統一しています。3行目では、Blobオブジェクトを識別するURLを生成し、jQueryを使用して、aタグのhref属性に設定しています。
これにより、ユーザがダウンロード用リンクをクリックすると、content変数の内容が、ダウンロードされます。ただし、ブラウザや設定によっては、ダウンロードではなく、別ウインドウやタブで開かれるかもしれません。
作成したプログラム
作成したプログラムをブラウザで表示した画面イメージです。テキストエリアに入力したテキストを、ダウンロードリンクから、ローカル環境にダウンロードする事ができます。
HTMLです。
<textarea id="content" cols="40" rows="5">Hello, World! こんにちは、みなさん!</textarea><br> <a id="download" target="_blank">ダウンロード</a>
JavaScriptです。
(function() { // Aタグのhref属性に、Blobを設定する。 // Blobに含めるデータは、引数で指定する。 function setBlobUrl(id, content) { // 指定されたデータを保持するBlobを作成する。 var blob = new Blob([ content ], { "type" : "text/plain" }); // Aタグのhref属性にBlobオブジェクトを設定する。 window.URL = window.URL || window.webkitURL; $("#" + id).attr("href", window.URL.createObjectURL(blob)); } $("#content").keyup(function(){ setBlobUrl("download", $("#content").val()); }); $("#content").keyup(); })();
今回作成したプログラムは、jsdo.it上で作成しました。次のリンクから、参照可能です。興味が湧いた方は、Forkして遊んじゃって下さい。
初めてのjQueryプラグインを作成してみました
最近、jQueryやBootstrapなどに触れています。把握しきれないくらいたくさんのライブラリやプラグインが作成されていて、圧倒されていたりします。それで、興味が湧いてきて、jQueryプラグインの作成方法について、少し調べて見ました。jQuery公式サイトに載っていて、かなり簡単に作成できるようですので、ひとつ作ってみました。
元にしたjQueryプラグインのひな形
jQuery公式サイトから次のようなひな形をコピペして作成しました。いくつかひな形のパターンがあるようですが、一番使う機会が多そうなパターンにしました。
(function( $ ){ $.fn.tooltip = function( options ) { // Create some defaults, extending them with any options that were provided var settings = $.extend( { 'location' : 'top', 'background-color' : 'blue' }, options); return this.each(function() { // Tooltip plugin code here }); }; })( jQuery );
$('div').tooltip({ 'location' : 'left' });
作成したjQueryプラグイン
実装方法
次のようなHTMLのDiv要素に対して、CSSで色を付けるようにしました。
<div> Hello, World! </div>
自作したjQueryプラグインです。
(function( $ ){ $.fn.tooltip = function( options ) { // Create some defaults, extending them with any options that were provided var settings = $.extend( { 'location' : 'top', 'background-color' : 'blue' }, options); return this.each(function() { // Tooltip plugin code here $(this).css('location', settings['location']); $(this).css('background-color', settings['background-color']); }); }; })( jQuery );
プラグインを呼び出している処理です。
$('div').tooltip({ 'location' : 'left', 'background-color' : 'lightgreen' });
非常に簡単に作成できるのですね!
文字列表記を変換するツールを作ってみました
前回に引き続き、JavaScript/jQueryを使って、ブラウザ上で動作する簡単なツールを作成してみました。
Windowsバッチファイルのひな形を生成するジェネレーターを作ってみた
よく、CSSジェネレーターとか、HTMLジェネレーターとか、ボタンジェネレーターとか、アイコンジェネレーターのページを見かけることがあります。特に、アイコンジェネレーターは、急にアイコンが欲しくなった事があり、大変重宝した覚えがあります。インストールレスで手軽に使えることが嬉しかったですね。
そんなジェネレーターを自分で作ってみたいと思いました。簡単なところから、Windowsのバッチファイルのひな形を生成するようなジェネレーターを題材にしました。個人的に、使い捨てになるようなバッチファイルを書く機会が時々あり、ひな形があればいいのにと思っていました。
作成したジェネレーター
作成したジェネレーターは、次のURLで公開しました。名前は「Windowsバッチファイルジェネレーター」です。そのまんまです。
現状では機能が少ないですが、今後、必要に応じて、作り込んで行けばいいかなと思います。コメント欄にご要望頂ければ、対応したいとも考えています。
作成方法
使用した技術は、HTML, CSS, JavaScript, jQuery, Windowsバッチコマンドです。特に難しいことはなく、作る上でのポイントも特になく、淡々と作る感じでした。以下、ざっくりとした作成手順です。
1.Twitter Bootstrapひな形準備
必須ではありませんが、多少見た目を良くするために、Twitter Bootstrapを使いました。次のサイトからダウンロードしました。HTMLのひな形には、「Getting Twitter Bootstrap」ページで取得できる「Starter template」(starter-template.html)を使いました。
ダウンロードしたファイルを、自分の環境に配置して、次のような構成にしました。
winbatchgen/ ├── assets/ │ ├── css/ │ │ ├── bootstrap-responsive.css │ │ ├── bootstrap-responsive.min.css │ │ ├── bootstrap.css │ │ └── bootstrap.min.css │ ├── img/ │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ └── js/ │ ├── bootstrap.js │ ├── bootstrap.min.js │ └── win_batch_gen.js ※とりあえず空ファイルを作成 └── www/ └── win_batch_gen.html ※starter-template.htmlをリネーム
2.画面の見た目を作成
上記1で作成したひな形(win_batch_gen.html)に、必要な部品をコーディングしました。Windowsバッチファイルの生成内容を切り替えるための、テキストボックスやチェックボックス、生成結果のWindowsバッチファイルを表示するテキストエリアです。さらに、win_batch_gen.jsを読み込むための記述を追加しました。
3.画面の動作を作成
win_batch_gen.jsに処理を作成しました。難しいことはありません。Windowsバッチファイルとして扱われることになる、文字列を書き込んでいるだけです。
以上で完成です。
もし、プログラムを見たい場合は、Windowsバッチファイルジェネレーターを表示し、ブラウザ機能でソースを表示して頂ければ、全プログラムを見ることが出来ます。
Visual C# 2010 Express からNUnitを起動する方法
Visual C# 2010 Expressにて、NUnit 2.6.1を、外部ツールとして起動する方法をメモします。NUnitは既にインストール済みで、「C:\Program Files (x86)\NUnit 2.6.1」にインストールされている前提とします。
1.[ツール]→[設定]→[上級者設定]を選択します(既に選択済みの場合、操作不要です。)
2.[ツール]→[外部ツール...]から、外部ツールダイアログを起動します。
3.追加ボタンをクリックして、次のように入力します。
タイトル:NUnit コマンド:C:\Program Files (x86)\NUnit 2.6.1\bin\nunit.exe 引数:/run $(TargetName)$(TargetExt) 初期ディレクトリ:$(BinDir)
4.ソリューションエクスプローラーから、テストケースを記述したプロジェクトを選択します。これで、[ツール]→[NUnit]を選択すると、NUnitの画面が起動し、テストが始まります。
コンソール出力したい場合
NUnitの画面を起動せず、Visual C# 2010 Expressの出力ウインドウにテスト結果を表示したい場合は、外部ツールダイアログで次のように設定します。
タイトル:NUnit-console コマンド:C:\Program Files (x86)\NUnit 2.6.1\bin\nunit-console.exe 引数:$(TargetName)$(TargetExt) 初期ディレクトリ:$(BinDir)
32bit環境で動作させたい場合
私の動作端末はWindows 7 64bitです。そのため、上述の手順では、NUnitも64bit環境で動作するようです。32bitで動作させたい場合は、外部ツールダイアログで次のように設定します。
タイトル:NUnit-x86 コマンド:C:\Program Files (x86)\NUnit 2.6.1\bin\nunit-x86.exe 引数:/run $(TargetName)$(TargetExt) 初期ディレクトリ:$(BinDir)
タイトル:NUnit-console-x86 コマンド:C:\Program Files (x86)\NUnit 2.6.1\bin\nunit-console-x86.exe 引数:$(TargetName)$(TargetExt) 初期ディレクトリ:$(BinDir)
動作確認環境
- OS: Windows 7 64bit
- VisualStudio: Visual C# 2010 Express
- NUnit: 2.6.1
Windowsバージョンの取得方法(Windows8対応済み)
私のPC環境に、Windows 8 Release Preview 日本語版をインストールしてみました。これに伴い、以前作成したC#.NETによるWindowsバージョン取得プログラムを更新、動作確認してみました。
Windows8バージョン判定概要
Windows8のバージョン判定の方法は、Microsoftのサイトに載っています。
Windows8部分を抜粋すると次になります。
Operating system | Version number | dwMajorVersion | dwMinorVersion | Other |
---|---|---|---|---|
Windows 8 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6.2 | 6 | 2 | OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION |
プログラム
プログラムは、SourceForge.JPにおきました。
動作確認環境
- OS: Windows 7 64bit, WIndows 8 Release Preview 64 bit 日本語版
- 開発環境: Microsoft C# 2010 Express Edition
- .NET Framework: Version 3.5