酢ろぐ!

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

iPhone

iOSでAmazon S3からのレスポンスヘッダーの時間(Date)の文字列からNSDateを生成する(http-date to NSDate)

本記事は「HTTPレスポンスヘッダーの時間(Date)の文字列からNSDateを生成する - iOSアプリ開発の逆引き辞典」に転記しました。 久しぶりに普通にObjective-CでのTipsです*1。タイトルにはAmazon Simple Storage Service(Amazon S3)からの……と書いていますが…

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でログを出力する

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

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

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

iOSでUIWebViewからアプリへ文字列を渡す方法とアプリからUIWebViewへ文字列を渡す方法

本記事は「UIWebViewからアプリへ文字列を渡す方法とアプリからUIWebViewへ文字列を渡す方法 - iOSアプリ開発の逆引き辞典」に転記しました。 以前、Windows PhoneのWebBroswerコントロールで表示させたHTMLとアプリケーションとの連携にさせる方法をご紹介…

iOSでスプラッシュ画像(起動画面)を長く表示する

iOSアプリを起動するとスプラッシュ画像(起動画面)が表示されます。アプリによっては一瞬しかスプラッシュが表示されませんが、まれにスプラッシュには会社やブランドのロゴが書いているので、もう少しだけ長くスプラッシュを表示させて欲しいという要望を頂…

iOS 6で追加されたSocial.frameworkを使用してTwitterへ投稿する

// Twitter.frameworkではなくSLComposeViewControllerを使ってツイート投稿画面を表示する SLComposeViewController* vc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; [self presentViewController:vc animated…

Xcode 4.4からぶら下がりelseがワーニング扱いになりました

自分で読めないコードは書かない信念(というほど立派なものではありませんが)あり、今まで遭遇することはありませんでした。とあるライブラリを使用したときにえらい勢いでワーニングが発生しており、調べたところXcode 4.4になってから「ぶら下がりelse(d…

Apple Push Notificationのアプリ側の実装

Push通知の実装をやってみました。クライアントとサーバー側両方で実装が必要になるのですが、クライアント側はかなり簡単だったので拍子抜けしました。アプリ起動時にリモート通知用の登録をしてみましょう。UIApplicationクラスのregisterForRemoteNotific…

iOSでCGBitmapContextCreateImage関数で生成したCGImageRefオブジェクトはCGImageRelease関数で解放しないといけない

今日ハマったコード。ループで処理を回しているとメモリ不足でクラッシュすることが判明した。サンプル的に作成しているアプリだったので品質は関係ないのでクラッシュしても良いのだが、あまりにも頻繁にクラッシュするので調査することにした。元コードを…

iOSでUIViewのアニメーション処理をBlocksで書いてみた

iOS 3.x系との下位互換を気にしないといけないアプリケーションばかり開発していたので、当然Blocksを使う機会がありませんでした。少し勉強がてらにBlocksでアニメーション処理を書いてみました。(スキル的にお察しの通り)高度なことはできませんので、簡単…

iOS 5で追加されたTwitter.frameworkを使ってツイートを投稿する

id:yukioda1024が少し前にTwitter.frameworkを使って投稿する。 - gonouの日記のような記事を書いているのを思い出しました。今まで各自それぞれがiOS向けのTwitter SDKが追加していましたが、iOS 5でiOSそのものにTwitter機能が統合されました。より簡単にT…

iOSで半角から全角へ変換したり、ローマ字からひらがなに変換したりする

id:alzaが少し前に半角カナを全角カナに変換する。 - アルザえもんの手記のような記事を書いているのを思い出しました。それぞれのコードで同じ処理を書くのは面倒ですし、変数transformと変数reverseの組み合わせで「カタカナからひらがな」なのか「ひらが…

iOSでUINavigationBarの背景画像を変更する

本記事は「UINavigationBarの背景画像を変更する - iOSアプリ開発の逆引き辞典」に転記しました。 iOS 5からUINavigationBarとUIToolBarの背景に任意の画像を設定するのが簡単になりました。ここではUINavigationBarの背景画像を変更してみましょう。標準解…

iTunesとiPhone(iPad/iPod)間でデータ共有する

info.plistに「UIFileSharingEnabled」を追加して、値をYESにするだけです。

AVAudioPlayerを使って再生する際の音量を取得/設定する

AVAudioPlayerクラスを使用して音を鳴らす方法は「AVaudioPlayerで音を鳴らす」でご紹介しています。 鳴らす処理の延長線上となる音量の取得/設定の方法についてご紹介したいと思います。 |objc| // 楽曲ファイルのパスからAudioPlayerオブジェクトを作成 NS…

AudioServicesCreateSystemSoundID/AudioServicesPlaySystemSoundで音を鳴らす

本記事は「AudioServicesCreateSystemSoundID関数/AudioServicesPlaySystemSound関数を使ってサウンドファイル(BGMや効果音など)を再生する - iOSアプリ開発の逆引き辞典」に転記しました。AudioServicesCreateSystemSoundID関数を使用する場合は、importデ…

iOSでAVaudioPlayerで音を鳴らす

本記事は「AVaudioPlayerを使ってサウンドファイル(BGMや効果音など)を再生する - iOSアプリ開発の逆引き辞典」に転記しました。AVAudioPlayerクラスを使用する場合は、importディレクティブに以下の宣言が必要になります。 #import <AVFoundation/AVFoundation.h> バイナリ内に含まれる楽</avfoundation/avfoundation.h>…

NSDictionaryクラスのobjectEnumeratorメソッド、keyEnumeratorメソッドを使用する

以下のようなデータを追加したNSMutableDictionaryクラスのオブエジェクトを使用する。 NSMutableDictionary* dict = [NSMutableDictionary dictionary]; [dict setValue:[NSNumber numberWithInt:1] forKey:@"うさぎ"]; [dict setValue:[NSNumber numberWit…

Objective-Cで使えるBOOL型(YES/NO)とBoolean型(TRUE/FALSE)の違い

本記事は「Objective-CでのBOOL型(YES/NO)とBoolean型(TRUE/FALSE)の違い - iOSアプリ開発の逆引き辞典」に転記しました。 ソースコード一式にBOOL型変数とTRUE/FALSEの組み合わせで使われており、ひどく違和感を覚えたのでどこで定義されているものなのか調…

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

本記事は「ステータスバーのネットワーク接続中のインジケーターを表示/非表示する」に転記しました。 ネットワーク通信中を表すステータスバーのぐるぐるは、NetworkActivityIndicatorと呼ばれています。かなり今更なのですが、このインジゲータを表示/非表…

Xcode 4.2でiOS 5.1 SDKを使う方法

諸事情ありXcode 4.2に戻すこととなった。だが既にXcode 4.3対応をしていた都合もあり手元にあるiPhoneはiOS 5.1にバージョンアップ済みである。Xcode 4.2でiOS 5.1 SDKを使った開発が可能かチャレンジしてみたい。日本語でまとまっているドキュメントとして…

アプリ内課金で使用できるプロダクト定義

本記事は「アプリ内課金で使用できるプロダクトの種類 - iOSアプリ開発の逆引き辞典」に転記しました。 iTunes Connect内ではアプリ内課金のプロダクトの種別を指定することが可能です。それぞれ、消費型/非消費型/自動継続購読型/無料購読型/非継続購読…