SYSTEM DEVELOPMENT

STUDY GROUP

Dance with C# ♪♪

現場入りして、開口一番言われたこと。

(社・∀・長)つ「今日からXamarinで、C#書いてもらいま」

っん?…(・・?)えと? ざまりんて、何ソレうまいの?

ま、まぁホラ、C#っていうと、C++の延長線上のアレでしょ?

んで、オブジェクト指向言語だから、ナントナ~ク同じような挙動するんでしょ?

し、知ってますよもちろん(汗 ま、まかせてくださいよ(滝汗

さて…何は無くとも、ソッコーでHelloWorldを探してきて、と。

因みにXamarin(ざまりん)とは、

EclipseのようなIOS/Androidアプリ開発環境で

XamarinFormと言う抽象度の高いフレームワークでGUIアプリを作れば

IOS/Android両方に向けたアプリをビルドすることができるオモシロ開発環境

なのであ~る。

[DAY1]

1。まずは文字列”HelloIOS”という例題を、コピペ 。からの 実行 (@Xamarin)

参考URLhttps://developer.xamarin.com/guides/ios/getting_started/hello,_iOS/hello,iOS_quickstart/

2。テキストフィールドに入力した文字列を引数にしてアラートを表示するプログラムを試作後、エミュータ上で表示

参考URLhttp://qiita.com/amay077/items/0a3fa3dfac7f29a2807d

3。参考URLを基に簡易ブラウザを作成後、エミュレータ上で表示

http://furuya02.hatenablog.com/entry/2014/07/13/180930

[DAY2]

WebViewが表示しているページのURLを、クリップボードにコピーしたい

 ボタンイベントで実現したい

・ページ移動に従って、現在表示しているページのURLを取得しURL表示を更新したい

URLコピーボタンを押すと同時にブラウザを閉じて、Messenger画面の入力フォームにコピー内容をペーストしたい。

[おこなったこと]

WebViewから、現在表示しているページのURL(=文字列)を取得

・取得したURL文字列を、クリップボードにコピー

参考:http://dev-suesan.hatenablog.com/entry/2017/03/04/235524

WebViewからのURL文字列取得する際は、WebView.SourceUrlWebViewSourceにキャストする必要がありました。

・クリップボード操作については、開発アプリ側にインターフェイス等が既に用意してあり、XamarinFormsから利用するのみの状態でした。

[DAY3]

開発環境Xamarin、及び開発アプリGUIの挙動ついての理

1)音声認識Delegateの仕組みを理解する

・音声機能デリゲートの分析

CustomRendererを使ってボタンのパディング操作

2)開発アプリ右上メニューに追加した練習用WebBrowserページのボタンを、XamarinFormsButtonEnhancedButtonに換え、paddingを操作す

[行ったこと]

1)

XamarinからIOS音声認識を利用するための一般的な方法を、webで調査

  info.plistの操作:ターゲット、パーミッションの変更等

  IOSネイティブの機能を使ってXamarinForms

   ・ビジュアルを変えたい CustomRenderer

   ・ハード的な機能を使いたい DependencyServices

を基に、開発アプリでの実装を逐次調査

C#の関数デリゲートについて、利用方法を学習

  戻り値、引数の型が同じ、他のオブジェクトのメソッドに処理を委託することができる

  委託先のメソッド名は関係ない

2)

EnhancedButtonは既存。Paddinggetsetを利用することで、パディングの変更を実現

[DAY4]

開発環境Xamarin、及び開発アプリのGUIの挙動ついての理解を進める

1) BindablePropertyの使い方についての調査及び、XamarinFormsからボタンのpaddingを操作する

2) CustomRendererを用いて、ボタン文字列を、タグで囲まれた部分について太文字に換える。使用するタグについては、今回適当に自分で定義する。

3) ListViewContentPageを自作し、右上メニューに追加。何かしらの情報をリストの形にして表示する

-) 関数デリゲートの手法を用いて、練習用WebBrowserページでコピーした文字列を、messengerのテキストフィールドにセットできるような仕組みを考える

[行ったこと]

1)BindingPropertyの使い方について調査したのだが、昨日行った「CustomRenderer」を使って、ボタンのパディングを変更する処理を、BindableProperty と勘違いして行っていた。

正しくは、CustomRendererにてパディングを直接設定してしまえばよかった模様。CustomRenderereIOSネイティブ描画機能をExportする機能のみ担当するものと理解していたが、ここで値の設定もできる。

2)CustomRendererを用いて、ボタン文字列のフォントを変えることはできたが、文字列の一部分にボールドを適用にする等、フォント属性の設定はできない模様。これを実現するためには、xamarinForms側でformattedStringを用いれば可能かと考える。

http://www.atmarkit.co.jp/ait/articles/1609/07/news021.html

3)ListViewページを、右上選択メニューに新規作成。=現状白紙のページ。

[DAY5]

任意の文字列に含まれる特定のタグに反応して、ContentPage内の部分文字列のFont属性を変更する

[行ったこと]

・既存処理から、操作対象になる文字列が含まれる処理を抽出

・既存文字列にはまだ<タグ>が未実装のため、ダミーのデータを作成

・1文内に複数の<タグ>があることを想定して、アルゴリズムを考えた

  …要するに、この件は(低速低能な)置換処理だと思えばいいわけで…

menu