酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

開発-Xamarin

Xamarin.iOSでUIActionSheetを表示する

Xamarin.iOSでUIActionSheetを表示させます。 var title = "サインインするサービスを選択します"; using (var sheet = new UIActionSheet(title, null, "Cancel", null, new []{ "pixiv" })) { sheet.Clicked += (sx, ex) => { Console.WriteLine("clicked.…

iOSアプリからWindowsストアアプリやXamarin.iOSへ移植したい方へ。Objective-C to C#変換ツール「Automagical」が出ました

生存戦略しましょう! by Akkun on pixiv スマートフォンアプリ開発に従事している方は、案件によってC#(Windows Mobile、Windowsストアアプリ)であったりObjective-C(iPhone/iPad)であったり、Java(Android)であったり各プラットフォームによって様々な言語…

C#でISBN-13からISBN-10へ変換する/ISBN-10からISBN-13へ変換する

個人的にネットで書籍を買う時に使うのが楽天ブックスとAmazonです。 どちらのショップでもISBNの表記を見つけられるはずです。ISBNとは書籍を管理する番号です。ISBNの規格には10桁で管理するISBNと13桁で管理するISBN-13が存在しています。 基本的にはISBN…

Xamarin StudioでPCLプロジェクトを生成して、Visual Studioでターゲットフレームワークを変更後にHttp ClientをNuGet経由で導入して、Xamarin Studioで開くとクラッシュする

タイトルの意味わかる? あとでちゃんと調べますが、とりあえず再現手順と回避方法だけ書いておきます。 環境 バージョン Windows Windows 8.1 Pro 日本語版 Visual Studio Visual Studio 2013 Ultimate 日本語版 Xamarin Studio Alpha channel (2014/2/2時…

Xamarin for Visual StudioをインストールしたらWindowsストアアプリプロジェクトのXAMLが正しく表示されなくなった

Xamarin for Visual Studioをインストールしたら、Visual Studio 2013でのWindowsストアアプリプロジェクトのXAMLデザイナーが、下図のように正しく表示されなくなってしまいました。 XAMLデザイナーを開いていると50以上のビルドエラーが発生してしまい、XA…

Xamarin.iOSで乱数を使う

乱数を取得するには、System名前空間のRandomクラスを使います。 乱数を取得する Random r = new Random(); var randomNumber = r.Next(); 0以上10未満の乱数を取得する Random r = new Random(); var randomNumber = r.Next(10); 5以上10未満の乱数を取得す…

Xamarin.iOSでUIAlertViewを使ってアラートを表示する

すみません。更新が長いこと空いてしまっていました。今日からまたXamarin Studioを使った開発Tipsを発信していきたいと思います。 Xamarin.iOSでアラートを表示させてみましょう。.NET Frameworkでアラート表示と言えばMessageBox.Showメソッドを使いますが…

Xamarin.iOSで現在時刻を取得する

Xamarin.iOSを使って現在時刻を取得します。 var currentTime = DateTime.UtcNow; Console.WriteLine ("Date/Time: " + currentTime); 関連記事 Xamarin.iOSを使ってアプリ開発する際に逆引きとしてお使いください。

Xamarin.iOSでバッググランド処理するスレッドを起動する

新しいスレッドを作ります。 var thread = new Thread(NewThreadMethod as ThreadStart); thread.Start(); 新しいスレッドが呼び出されるメソッドを作ります。 [Export("NewThreadMethod")] void NewThreadMethod() { using(var pool = new NSAutoreleasePoo…

Xamarin.iOSでバイブレーションとシステムサウンドの再生を鳴動させる

バイブレーションさせる SystemSound.Vibrate.PlaySystemSound(); cafファイルを再生する var sound = new SystemSound(new NSUrl("audioFile.caf")); sound.PlaySystemSound();

Xamarin.iOSでパラパラ画像を変えるアニメーションを実装する

Xamarin.iOSでパラパラアニメを実装します。 // パラパラアニメさせる画像の一覧をリストに追加する var images = new List<UIImage>(); images.Add(UIImage.FromFile("img1.png")); images.Add(UIImage.FromFile("img2.png")); images.Add(UIImage.FromFile("img3.pn</uiimage>…

Xamarin.iOSでフォルダのパスを取得する

.NET FrameworkではEnvironment.GetFolderPathメソッドを使うことでフォルダパスを取得することができます。Xamarin.iOSをiPhoneシミュレータで実行した場合に取得できるフォルダパスを調べてみました。 string dir = string.Empty; dir = Environment.GetFo…

Xamarin.iOSでNSData型とbyte[]型とを相互に変換する

.NET Frameworkでのbyte型をXamarin.iOSでのNSData型に変換、または逆にNSData型をbyte型に変換してみましょう。 (2018/04/28追記)この記事は古く現在ではもっと簡単に(そしてモダンに)書くことができるようになっています。@yakumomo さんがQiitaで書かれた…

Xamarin.iOSでNSString型とstring型とを相互に変換する

.NET Frameworkでのstring型をXamarin.iOSでのNSString型に変換、または逆にNSString型をstring型に変換してみましょう。 string型をNSString型に変換する string str = "hello. my world!"; NSString nsstr = new NSString(str); NSString型をstring型に変…

Xamarin.iOSでNSDate型とDateTime型とを相互に変換する

.NET FrameworkでのDateTime型をXamarin.iOSでのNSDate型に変換、または逆にNSDate型をDateTime型に変換してみましょう。 ** NSDate型をDateTime型に変換する |cs| public DateTime NSDateToDateTime(NSDate date) { var baseDate = new DateTime(2001, 1, 1…

Xamarin Studioを使ってみよう!その10 - Retina 4インチかどうか判定する

前回までのTipsでは、Xamarin.iOSを使って「デバイスがiPadかiPhoneか判定する」「Retinaディスプレイかどうか判定する」をご紹介してきました。今回は、それらのTipsを使用して、液晶がRetinaの4インチ*1かどうかを判断したいと思います。 using System; us…

Xamarin Studioを使ってみよう!その9 - Retinaディスプレイかどうか判定する

Xamarin.iOSで、使用中のデバイスがRetinaディスプレイなのか、標準解像度(非Retina)なのかを判定することがあります。Objective-Cを使ってデバイスがRetinaディスプレイかどうかの判定する時は、以下のようにUIScreenクラスのscaleプロパティを使用します。…

Xamarin Studioを使ってみよう!その8 - デバイスがiPadかiPhoneか判定する

Xamarin.iOSで、使用中のデバイスがiPadなのか、iPhoneなのかを判定することがあります。Objective-Cを使ってデバイスがiPadかどうかの判定する時は、以下のようにUI_USER_INTERFACE_IDIOM関数を使用します。 |objc| + (BOOL) isPad { return UI_USER_INTERF…

Xamarin.iOSで「LINEで送るボタン」機能を実装する

id:griffin-stewie さんの「iOS で「LINE で送る」を実装する」をXamarin.iOSで実装しました。CH3COOH/Softbuild.Social.Line CH3COOH/Softbuild.Social.Line · GitHubObjective-Cで書かれたコードをXamarin.iOS向けにC#で移植するとどんな感じになるか、実…

Xamarin.iOSでインターネット上のコンテンツをダウンロードして表示させる

本記事では、Xamarin.iOSを使って、ネットワークを利用してインターネット上のコンテンツをダウンロードし、UILabelに表示させてみましょう。インターネット上のコンテンツと一口で言っても画像を含めバイナリファイルや、テキストファイルなど様々なタイプ…

Xamarin.iOSでUImageからピクセル配列を取得して画像処理する

Xamarin.iOSを使って、画像処理をしてみましょう。 基本的にはObjective-CのコードをそのままC#への置き換えする形となります。本記事では、過去にWindowsストアアプリ向けに実装したグレースケール変換処理を移植してみましょう。 UIImageオブジェクトから…

Xamarin.iOSでinfo.plistで指定したバージョンを取得する

バージョン情報を表示させたり、問い合わせ時にアプリケーションバージョンを付け加えたりする場合、info.plistのバージョン情報を取得します。Objective-Cで書いたら下記の通りです。 NSString *build = [[[NSBundle mainBundle] infoDictionary] objectFor…

Xamarin.iOSでログを出力する

iOSアプリケーション開発で必ず使うと行っても過言ではない関数のひとつにNSLog関数があります。(printf関数のように)変数の値や実行されているメソッド名、ファイル名をコンソールに出力してデバッグに利用します。 Xamarin.iOSでログを出力させてみましょ…

Xamarin Studioを使ってみよう!その2 - Xamarin.MacでHello Worldアプリを作ってみた

Xmarin Studioを起動すると、Visual Studioのようにプロジェクトを作成するウィザードが立ち上がる。今回は、Mac用のHelloWorldアプリを作成してみましょう。Xamarin Studioを起動して、ソリューションから[New]を選択します。ウィザードには、Xamarin.Macと…

Xamarin StudioがリリースされたのでMacにインストールする

11日前に書いた記事が下書きのままだったので、適当に説明文を付け加えて投稿してみる。 Xamarin Studioは、C#を使ってAndroidやiOSのアプリケーションを開発することが出来るIDEです。過去にMonoTouchやMono for Android(MonoDroid)と呼ばれていた時代には…

Xamarin.iOSでステータスバー上のNetworkActivityIndicatorを表示/非表示させる

Xamarin.iOSでステータスバー上のNetworkActivityIndicatorを表示/非表示させます。NetworkActivityIndicatorとはステータスバーにあるぐるぐるです。 インジゲータを表示します。NetworkActivityIndicatorVisibleプロパティをtrueに設定すると表示し、false…