2010年4月30日金曜日

Android携帯を買った Softbank X06HT (HTC Desire)

初めてスマートフォンとやらにかえてみた。4月12日に予約して発売日の27日朝イチにGETした。Softbankの店員もよくわかってなくて、料金プランやキャンペーン内容を私が教えるという逆転現象のなか、なんとか40分ほどで機種変手続き終了。

Softbank X06HT (HTC Desire)というやつです。

●いまどきiPhoneじゃなくてAndroidにしたわけ

  • 最初はまじで夏~秋に出る次のiPhoneを狙っていた。でも今回の機種が出たので悩んでこっとにした。
  • iPhoneはメーカー、通信会社とも1社づつなのに対して、Androidは制限がないため、いまは複数のメーカから出ていてキャリアも全3社から出ており、今後は間違いなくシェアは逆転する。そうなるとアプリも環境もすぐにiPhoneを追い抜いて充実する。(MacとWindowsの関係と一緒です)
  • 携帯アプリを作ってみたかったが、iPhoneの場合はAppleの規制が厳しく配布するのが難しい。それに開発環境がMac+ObjectiveCという、いまどきありえない環境。それに対してAndroidはOSは何でもOK+EclipseでのJavaなのでらくちん
まだいろいろ触りまくってお試し中です。

●使ってみた感想やわかったこと


  • 機能はほとんどiPhoneと一緒、iTuneで曲管理するアプリもあったが入れてはいない。iPhone用のアプリをAndroidに移植したものが結構出ていた
    • 音楽を聞かせて曲名を当てる「Shazam」があってびっくりした
  • 標準のTwitterクライアントが使いにくい、そこで国内製の「twicca」に替えた
    • 標準のは写真がアップロードできない、Twitter検索ができない
  • フリック入力のできるSimejiを入れてみたが、私には使いにくく標準に戻した。標準のIMEでUndoができるのはうれしい
  • 充電中、本体が結構温かくなる。
  • 普通に触りまくっていると、電池がすぐなくなる。なので、画面の明るさをギリギリまで落としている。GPSとかも必要のないときは切っておく。
  • 壁紙にソフトバンクのおとうさん犬を入れて触ったらしゃべった
  • Wi-Fiについて
    • 家の無線LANにつなぐ設定がめんどうだった。SIDとパスワード(16桁)を入れるのは大変だった
    • Softbank提供の公衆無線LANの設定は最初から入っていて、アクセスポイント内に入ると勝手に繋がった
  • ケースが欲しいがまだほとんどない。UKのメーカーにいいのがあるので、問い合わせ中。
    http://www.mobilefun.co.uk/alu-leather-case-htc-desire-google-nexus-one-p23580.htm

2010年4月11日日曜日

iPhoneとAndroidを比較調査した

そろそろ携帯を変えようかと思ってiPhoneとAndroidを比較調査した。

■Androidの方がいいかなと思う点

  • 真のマルチタスク
  • 通知機能の充実によるアプリ連携性
  • Flash対応
  • Googleのクラウドサービスとの連携性
  • 開発のしやすさ、公開のしやすさ
■iPhoneの方がいいかなと思う点

  • OS、画面のCool性
  • 音楽機能
  • アプリの充実(これはそのうちAndroidに追い越される)
  • アプリの信頼性
マニアにはAndroid、普通の人はiPhoneという構図が見えてきた。

というわけで、明日にでもAndroidスマートフォン「HTC Desire(X06HT)」を予約に行く可能性大。

2010年4月6日火曜日

Listオブジェクトから特定のIndex(複数)をRemove

Listオブジェクトを使っていると、特定のIndexに相当する値を除去したくなる時があります。

単一のIndexならRemoveメソッドを使えば取り除けますが、複数の項目を同時にRemoveしようとするとうまくいきません。これはひとつの項目を除去するとListのIndexが更新されるので、次のIndexに相当する項目が変わってしまうからです。

Delegateを使ってRemoveAllメソッドを使えばできるようですが、私はこのDelegateがどうも苦手でダメなので、代わりに除去したListを返す関数を作ることで対応してます。

これってたぶん亜流なんでしょうね。



using System.Collections.Generic;
using System.Diagnostics;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create Start List
            List<int> Ints = new List<int>();
            for (int i = 0; i < 100; i += 10)
            {
                Ints.Add(i);
            }
            
            //Create Delete Index List
            List<int> Deletes = new List<int>();
            Deletes.Add(2);
            Deletes.Add(4);


            // Do Delete
            List<int> result = DeleteFromIndex(Ints, Deletes);


            // Show Result
            foreach (int value in Ints)
            {
                Debug.WriteLine(value.ToString());
            }
            foreach (int value in result)
            {
                Debug.WriteLine(value.ToString());
            }


        }
        /// <summary>
        /// Delete values from index
        /// </summary>
        /// <param name="inList">Original List</param>
        /// <param name="inDeleteIndex">Index list for deletion</param>
        /// <returns>Deleted list</returns>
        private static List<int> DeleteFromIndex(List<int> inList,List<int> inDeleteIndex)
        {
            List<int> rt = new List<int>();


            for (int i = 0; i < inList.Count; i++)
            {
                if (!inDeleteIndex.Contains(i))
                {
                    rt.Add(inList[i]);
                }
            }
            return rt;
        }
    }
}

2010年4月3日土曜日

.NET開発系ユーザミーティングに参加

.NET系のユーザミーティングに参加してみた。

2010 Community Open Day with INETA Japan - Osaka ~ Microsoft Visual Studio 2010 編 ~


主に今年出るVS2010周りの話題でした。


収穫:

  • 関数型プログラミングをサポートするF#という言語が入るらしい。HaskellとScalaの間くらいの言語
  • やろうと思えばVS上でHaskell(GHC)が動かせる
  • 並行・並列処理の組み込みが楽になる(Task Parallel Library; TPLなど)
  • どのように動かすかではなく、何をしたいかを実装しよう
  • テストプロジェクトをもっと積極的に使おう
  • プラグイン(機能拡張)の実装が簡単になる

全体感想:

  • ユーザコミュニティというのに初めて参加したが、なんとなく私のような初参加は居心地が悪かった、身内だけで盛り上がっている感じがした
  • 会全体の目的がイマイチ理解できなかった

何回か行ってみる必要がありそう。