2011年5月29日日曜日

Titanium

Titanium を試してみましたが、新規作成した空のプロジェクトを実行しても

[INFO] Building Hello for Android ... one moment

から進まなくて試せませんでした

JDKを64bitから32bitに入れ替えたり、Paython2.7 とsconsを入れたりとかしたけどダメで、もう諦めて投げ出そうと思った時に

PATHに

%JAVA_HOME% を追加した所を
%JAVA_HOME%\bin

にしたところ先に進むことが出来ました。
アプリをエミュレータにダウンロードして一瞬実行して
Sorry! The application xxx (xxx) has stopped unexpectedly. please try again. で終わってしまいました。

サンプルプロジェクトのKittchenSinkは動いたので、なんか余計なことをしてしまったのかも

とりあえず先に進めただけで良しとしますか

HTC evo 借りてみました

 

先週からAUのHTC EVO WiMAX ISW11HTをレンタルして使っています。
EVOは通常のAU端末と使用する電波が違うということで、AUショップでエリア確認用端末を1週間無料で貸し出しをしています。貸し出し希望者が殺到しているかと思いましたがそうでもなくて、お願いして1週間ほどで借りることが出来ました。

WiMAXのレンタルは今年に入ってから一度やったので、だいたいの感度は解っていたのですが、今回使ってみて以前より大分電波状態は改善されていると感じました。まず自宅室内で場所によっては信号強度”最高”か”良好”となっていて驚きました。これなら契約してもいいかも!と。
通勤に田園都市線、大井町線、池上線と東急電鉄を使いますが、移動中ほぼ電波の途切れる事はありませんでしたが、大岡山や長原等のホームが駅構内に囲まれている場所ではWiMAXは受信できませんでした。東急駅内に基地局が無いって事がわかります。駅に近づくと電波が弱くなるのが悲しいですね。ただ、3G電波は健在なので困ることはありませんでした

EVOは4.3インチ液晶でちょっと大きめでもう少し小さい方が持ち運びには良いのですが、画面は大きいのでWEBページ等の閲覧には見やすくて良いです。


このまま契約してしまいたいぐらい気に入りましたが、端末代と運用費用で躊躇してます。
携帯の契約をこれ以上増やしてどうするんだ!という気持ちと、これは趣味だから趣味にお金を使うことは許されるのでは?という気持ちで揺れています。




Posted by Picasa

2011年5月7日土曜日

pivotでスワイプ操作

WP7 Silverlight で GoogleReader クライアントを作っていますが、その作業中にやったことを紹介していこうと思います


Readerの記事送り操作にスワイプ(フリック?)で前後へ移動できるようにしてみました
具体的にはPivotを使います。

全部の記事リストをpivot itemに突っ込んでしまうのはリソースを食らいすぎると思われるのでcurrentのページと前後のページで 3item をあらかじめ作りました。

こんなイメージ

この3つは繋がっているのでスワイプでぐるぐる回して切り替え表示ができます。



pivo tの xaml
<controls:Pivot Name="pivot1" Title="uGReader" ItemsSource="{Binding items}"
     HeaderTemplate="{StaticResource HeaderTemplate}"
      ItemTemplate="{StaticResource PivotItemTemp}"
      d:DataContext="{d:DesignData SampleData/ContentSampleData.xaml}"
      SelectionChanged="pivot1_SelectionChanged" LoadedPivotItem="pivot1_LoadedPivotItem">
</controls:Pivot>
Header , Item の表示内容はtemplateで指定しています

template定義
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="HeaderTemplate">
    <StackPanel Orientation="Vertical" Width="400" Margin="0">
        <TextBlock Text="{Binding bTitle}" FontSize="22" TextAlignment="Left" HorizontalAlignment="Left" 
                    Width="400"
                    TextWrapping="Wrap" />
        <StackPanel Orientation="Horizontal">
            <ToggleButton Content="ToggleButton" 
                    HorizontalAlignment="Right" 
                            Width="20" 
                            Height="20" 
                    Margin="8,0,8,0"
                    IsChecked="{Binding bStared}"
                    Style="{StaticResource StarButtonStyle}" 
                    VerticalAlignment="Center" 
                            Click="ToggleButton_Click" />
            <TextBlock Text="{Binding bSiteTitle}"  FontSize="20" />
        </StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding bAuthor}" FontSize="20" Margin="0,0,18,0"/>
            <TextBlock Text="{Binding bPublished}" FontSize="20" />
        </StackPanel>
    </StackPanel>
</DataTemplate>
<DataTemplate x:Key="PivotItemTemp">
    <Grid Margin="0,-20,0,0">
        <phone:WebBrowser local:BrowserBehavior.DocumentText="{Binding bContent}" Margin="8,0,8,20" >
        </phone:WebBrowser>
    </Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>

public ObservableCollection<ReaderItem> items { get; set; }
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    items.Add(App.Items[seldIndex]);
    items.Add(App.Items[seldIndex + 1]);
    items.Add(App.Items[seldIndex - 1]);
    pivot1.ItemsSource = items;
}



これでApp.Items リスト(ReaderItemクラス)の プロパティ bTitle,bStar,bAuthor,bPublished 等の内容をヘッダーに、bContentをpivotアイテムパネルに表示します。実際はseldIndexの決定や、リストの範囲チェックなどもします。
ContentsはHtml文字列なので、WebBrowserコンポーネントにbindしました。ただし、直接WebBrowsrコンポーネントにバインドできないので依存プロパティ? BrowserBehavior.DocumentText とやらを作って実現しました。(殆どサンプルソースをコピーしただけですが、後に紹介したいと思います)



スワイプで記事を切り替える処理はLoadedPivotItemイベントでcurrent以外のitemを書き換えて行いました
private void pivot1_LoadedPivotItem(object sender, PivotItemEventArgs e)
{
    seldIndex = App.Items.IndexOf((ReaderItem)pivot1.SelectedItem);
    int i = pivot1.SelectedIndex + 1;
    if (i > 2)
        i -= 3;
    if (seldIndex + 1 < App.Items.Count)
    {
        if (items[i] != App.Items[seldIndex + 1])
            items[i] = App.Items[seldIndex + 1];
    }
    else
        items[i] = FootItem;

    if (++i > 2)
        i -= 3;
    if (seldIndex > 0)
    {
        if (items[i] != App.Items[seldIndex - 1])
            items[i] = App.Items[seldIndex - 1];
    }
    else
        items[i] = HeadItem;

}

ここでも実際は範囲チェックとかもします。
だいたいこんな感じで記事をフリック操作でどんどん送って表示できました。

やってることはPivotItemのロードタイミングでリストを書き換えるだけですが、これだけの事ができるのは面白いですね



ただし問題が2点ほどあります

  1. WebBrowserコンポーネント上でスワイプしても記事送りになりません。Webページの横スクロール操作になります。
  2. Pivotのヘッダに記事タイトルを表示していますが、タイトル文字列が大きいと改行されてヘッダの高さが大きくなってしまいます。しかも一旦大きくなったヘッダはその後タイトル文字が少なくなっても小さくならない


こんな感じ↓で次の記事のタイトルが長いのでヘッダが大きくなってしまい記事とヘッダの間に空白ができるている


さらに一度大きくなったヘッダは小さくならない?

Posted by Picasa

2011年5月5日木曜日

NoDoが来た

さて Trophy の Update 通知が来たので、そのままZuneからUpdateしました。去年末にもらったLG製の開発端末は何度チェックしてもupdateが来なくてがっかりしていましたが(開発機にはupdateは無いとの噂)、さすがに製品はあっさりupdate通知がきました。



アップデート中に自動的に再起動して端末のアップデートが始まりました。途中経過のキャプチャを忘れてました。(興奮しすぎ)
この画面が結構長く、プログレスバーも殆ど動かないのでハングったか?と不安になりますが、我慢して待つと無事アップデート完了しました




アップデート完了!と思ったら、





まだ update があるって言われました。さっきのは2月のアップデートだったのね





update内容は

  • Copy and paste
  • Faster start and resume times for apps
  • improved category search in Marketplace
  • Perfomance tune ups



Downloadong updates


Preparing to install




rebooting your phone
ここで端末リブート




installing update
端末へのインストール中。結構待ちます。30分以上




インストール完了して端末を再起動



アップデート完了です



zuneのupdateページにrestoreポイントができていました



購入後直ぐにアップデートしたので、update前後でのパフォーマンスの違いは判りませんが、開発機とは軽快さが違うと感じました

HTC Trophyが来た

Wp7タワーを何度か目撃するうちに抑えきれなくなってしまい、購入ボタンをクリックしてしまいました。
買ったのはHTC Trophy 、 1shopmobileで $315 + 送料 $25 = $340 でした。
1shopmobileでは支払いはGoogle Checkoutで行うのでカード番号の入力などがなくて安心でした。購入後の発送完了通知などはGoogle Checkout から来ます。

4月29日に購入手続き後、その日のうちに発送確認メールが届いています。FedexのTrackingによると発送元は香港でした。自宅に到着は5月2日でしたが、あいにく留守にしていたので5月3日の夕方に届けてもらえました
税金払うのか?と思いましたが、特に何もありませんでした



箱はちょっと潰れ気味で新品感は無し、パッケージのシールも開封済みでした。きっと何かいろいろ有るんでしょう。




付属品。充電器とコンセントの変換プラグは使うこと無いでしょう。USBケーブル、ヘッドフォンもそのまま封印です




裏ぶたをペキペキはがしてバッテリの絶縁シートを剥がして電源を入れるとHTCロゴの後にボーダフォンロゴが出て起動しました。




ロック画面。メールが届いている






PCに接続してZuneが起動するとupdateが通知されました。NoDoか?そうなのか?