You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
はてなブックマークの機能をサードパーティのiOSアプリケーションに組み込むことができる、はてなブックマークiOS SDKを正式にリリースしました。ソースコード及び導入方法はGitHubにて公開しています。 8/9よりシードリリースを行って参りましたが、多数のIssue、Pull Requestを頂き、品質を高めることができました。シードデベロッパーの皆様には厚く御礼申し上げます。今後もIssue、PullRequestお待ちしています。 現在対応の表明を頂いているiOSアプリケーションは以下の通りです。 NAVERまとめリーダー Sleipnir Mobile - Web ブラウザ 通勤通学仕事の合間の最速ニュース:エキサイトニュース ITmedia エンタープライズ for iPhone 対応したアプリケーションのリリース詳細については、各社からの発表をお待ちください。 また、対応アプリ
どういうものかをざっと把握するために、GithubのREADMEの一部を訳してみた。 ちょっとまだどこまで理解できているのかわからないので、次はサンプルアプリものぞいてみる。 参考:ReactiveCocoa Github:ReactiveCocoa/ReactiveCocoa Introduction ReactiveCocoaはリアクティブ・プログラミングの機能が実装されています。 RAC(ReactiveCocoa)は現在と未来の値をキャプチャしたRACSignalを提供します。 RACはソフトウェア側が継続的に値の監視を行う必要はありません。 RACはRACSignalに反応したり、連鎖させたり、結合させたりすることによって、宣言的に記述することができます。 RACSignalはFuture,Promiseデザインパターンのように、非同期処理を記述することができます。 これによって
こんにちは。 Sleipnir Mobile for iPhone / iPad 開発担当の宮本です。 調べてみると、Sleipnir Mobile の最初のコミットは 2010年9月6日で、もう3年近く開発しているようです。最初はこんな貧弱な API でブラウザなんて作れるわけ無いと思っていましたが、なんとかなるものですね。今では多くのユーザーさんに使っていただけるプロダクトになりました。 今回は、この3年間で、使ってきた UIWebView の技を紹介したいと思います。詳細な方法については書きませんが、UIWebView で何ができて何ができないのかはわかるかと思います。それぞれの詳細なやり方については機会があれば書いていきたいです。 目次 長くなりそうなので、目次を用意しました。 余裕があればアップデートするので、ブックマークでもしておいてください。 UIWebView の API
Google Mapsアプリの拡大・縮小ジェスチャ 先日リリースされたiOSの新しいGoogle Mapsに、マップの拡大・縮小操作のジェスチャが新しく追加されました。ダブルタップ後にそのまま指を離さずに上下にパン(ドラッグ)すると拡大・縮小操作が行えるというもので、実際に使ってみると片手でも操作しやすくとてもいい感じでした。そこで、今回はこのジェスチャを簡単に使えるGestureRecognizerとして実装してみました。 開発環境は以下の通りです。 OSX Mountain Lion Xcode 4.5.2 iOS SDK 6.0 Apple LLVM Compiler 4.1 iPhone5 (iOS 6.0.1) ソースコードはGitHubで公開しています。 ジェスチャのルールを考える 実装に入る前に、まずはジェスチャのルールについて考えます。 まずは、ジェスチャの開始と終了につい
#import <Foundation/Foundation.h> @interface MyURLProtocol : NSURLProtocol @end #import "MyURLProtocol.h" # ループを防ぐためにHTTPリクエストヘッダーに追加する static NSString *const MyWebViewResponseCheckHeader = @"X-iOS-WebView-Response-Check"; @interface MyURLProtocol () @property (strong, nonatomic, readwrite) NSURLRequest *request; @end @implementation MyURLProtocol /*! クラスロード時に、URL Loading Systemに登録してしまう UIWebView/
オブジェクトのスケールや位置を変更し、アニメーションさせたりする場合にお世話になるアフィン変換をメモ。 ObjectNameというオブジェクトの大きさを、アフィン変換メソッドCGAffineTransformを使って2倍にしたい場合は [code] ObjectName.transform = CGAffineTransformMakeScale(2,2); [/code] とすればいいが、この場合、変形の起点はオブジェクトの中心からとなる。 左端を起点としたい場合は、UIKitフレームワークをインポートし、アンカーポイントを定義することで、そのアンカーポイントを起点とした変形が実行される。 [code] //.hファイル #import <UIKit/UIKit.h> //.mファイル ObjectName.layer.anchorPoint= CGPointMake(0,0.5); O
iPhoneアプリの申請作業を行う上で知っておいた方が良いことをまとめておきます。 一部個人の見解も混ざってます 申請ルールなどは予告なしに変更になることがよくあるので、本記事の内容は古い場合があります アプリ申請前 アプリはどこから申請するの? App Store Connectというサイトから申請できます。ブラウザはSafariでアクセスすることをおすすめします。 ※2018/6/5 、「iTunes Connect」は 「App Store Connect」 に名称が変更されました。 誰でも申請できるの? Apple Developer Programに登録する必要があります。(年間参加費 ¥11,800) また、アプリのアップロード時にはXcodeが必要なので、Macは必須になります。 アプリの申請時には何が必要なの? 次の情報が必要になるので事前に準備しておきましょう。 アプリ名
iOS7で採用されたフラットデザインっぽいUIを、現行iOS(〜6.x)で実装する際に役立つOSSをまとめました。後半ではiOS7っぽく下のビューをブラーかけて半透過表示するライブラリや、パララックス表示するライブラリも紹介しています。 * English version of this article ※(2013年7月17日追記)9点追加し、カテゴリ毎に分類しました。 総合 FlatUIKit フラットデザインなUIコンポーネント詰め合わせ。ソースをみると、ほとんどのコンポーネントが該当するUIKitコンポーネントのカテゴリやサブクラスとしてつくってあって、使いやすそうです。 FlatUI 同様にUIコンポーネント詰め合わせですが、かなりiOS7に似せてつくられている点が特長です。 UI7Kit iOS5, iOS6 で iOS7 の見た目を実現するUIKitのサブクラス集。 iPho
CALayer を使うと簡単にビューに影を落とすことができる。 CALayer* layer = self.imageView1.layer; layer.shadowOffset = CGSizeMake(2.5, 2.5); layer.shadowColor = [[UIColor blackColor] CGColor]; layer.shadowOpacity = 0.5; ただこの方法はビューの外側に影を落とせても、ビューの内部には影を落とせない。 どうするか。 CALayer のプロパティを眺めていていると shadowPath に気がついた。このプロパティには CGPathRef を渡すことができる。 @property CGPathRef shadowPath;もしかしてこれを使って任意の場所や形で影が落とせないか。 試しにこんな矩形のパスを作って渡してみた。 CALay
MAConfirmButtonはAppleのApp Storeアプリなどで使われている確認がある購入ボタンを再現するUIコンポーネント。 MAConfirmButtonはiOS用のオープンソース・ソフトウェア。iOSアプリ開発においてApple提供の公式アプリのUIを真似るのはとても良いことだ。公式アプリは利用者が多いので、他のアプリで同様の操作を提供してもすぐに使いこなしてくれるはずだ。 App Storeでよく見るボタン さらにAppleの手法はデザインとユーザビリティを考えた、とてもユニークな作りになっている。その一つ、アプリや音楽購入時のボタン操作を再現するのがMAConfirmButtonだ。 MAConfirmButtonはApp Storeアプリ等で使われている、購入時の確認ボタンを再現するUIコンポーネントだ。ボタンを一回タップすると別なメッセージを出し、さらにクリックする
iOS5から使えるようになった CIFilter の効果を一通り試せるサンプルプロジェクトをgithubに上げました。 こんな感じでフィルターを試せます。 (フィルタのパラメータはランダムに生成されるので、かける度に変わる場合もあります) プロジェクト一式、こちらからダウンロードできます。 https://github.com/shu223/FilterDemo 注意点として、選んでも何も起こらないフィルターがたくさんあります。 詳細は後述しますが、こちら、Apple の PocketCoreImage というサンプルコードを数行いじっただけのものなので、あんまり多種多様なフィルタに対応したつくりになってはいないのです。。 そういうフィルタはリストから除いてもよかったのですが、「どんなフィルタがあるのか?」を一覧できる意味もあるので、残してあります。 PocketCoreImageからの改
I work for a cool little app company that specializes in crafting custom experiences in the form of phone and tablet apps. Over the past couple months I've been tasked with implementing some designs that weren't immediately obvious how to create in code with just the methods provided by UIView and the art assets our designers could produce. Luckily I discovered CALayer's mask property. A CALayer i
本体のローカライズの書式設定(言語環境の書式)の設定に合わせて日付時刻を取得する方法 概要 NSDateFormatterのインスタンスメソッドのsetLocaleでロケールを設定。 現在設定されているロケールは[NSLocale currentLocale]で取得できるので、そのままsetLocaleに指定する。 NSDateFormatterのインスタンスメソッドのsetDateStyleで日付の書式、setTimeStyleで時刻の書式を指定したロケールで設定できる。 指定できる定型フォーマット 指定できる定型フォーマットはNSDateFormatterStyleで定義されている5種類 ・NSDateFormatterNoStyle ・NSDateFormatterShortStyle ・NSDateFormatterMediumStyle ・NSDateFormatterLongS
今回はアプリがバックグラウンドの状態でもファイルをDLできる部品を作ってみます。 アプリのバッジ表示をつかってDL進捗率を表し、DLが完了したらLocalNotificationでお知らせしてくれるものを作ります。 背景(なぜバックグラウンド実行が大事なのか) ファイルをDLする時間を待たせることはユーザストレスの一因となります。 可能であればDL中はTwitterなどで時間を潰してもらい、準備ができたらまた戻ってきて欲しいですねよね。それを実現するのがTask Completionです。 Task Completion(バックグラウンド実行)とは バックグラウンドで10分間だけタスクを処理できる機能です。 これを使うことでアプリがアクティブでない(=他のアプリを使用中)でも、ファイルのDLなどの作業を継続させることができます。 今回はこのTask Completionを使って、バックグラ
iOS4からBlockが導入されました。利用目的としてはDelegateパターンと大差ないと思っていますが、処理記述が呼び出し元で記述できることで可読性が高くなります。 また、コールバック時に利用されるperformedSelectorが非常に使いづらく複数の引数となった場合などを考慮してNSDictionaryで定義したりInvocationを使う必要がったりと面倒な点が多々ありました。 今回は、CoreFoundationにカテゴリで組み込まれたBlockを活用したBlocksKitフレームワークを紹介したいと思います。かなり便利なため、今後のコーディングスタイルを変えてしまうほどのインパクトがあると個人的には思っています。 BlocksKit https://github.com/zwaldowski/BlocksKit BlocksKitはBSD, MITライセンスの元で利用可能で
delegateやprotocolの勉強をしたいという人がいるので、なるべくわかりやすくここに書いておこう。propertyとか、delegateっていうのはObjective-Cで楽しいところでもある。 でも、delegateだけじゃなくて、他にもいろいろ非同期的な処理をやる方法あるんで、それも、まとめて説明する。 適当に思いつくだけ書くと、非同期的な処理をするために、Objective-Cでは以下のようなやり方がある。他にもあるかもしれないが、だいたいこれだけある。そして、どれを使ってもいい。 Objective-C、C/C++でも可能 ・関数のアドレスを保持しておいてコールバックする。 ・pthread条件変数を使う。(デッドロックやスレッド管理) ・非ブロッキングI/Oする。(データの検査コスト大、結局カーネル空間からユーザ空間に必要なデータをコピーするときにブロックされる) ・シ
デバッグ時にビューについての情報(重なりや位置、色など)を解析したくなることがよくあると思います。ビューの階層構造を知るための方法はいくつかありますが、先日見つけたSpark Inspectorがものすごく便利そうなのでご紹介します。 Spark Inspector – Runtime Debugger for iOS Apps Spark InspectorはBonjourとMethod Swizzlingを利用したランタイムデバッガーです。プロジェクトにフレームワークを追加し、起動のためのコードを記述するだけで簡単に利用できます(実際には、これらの作業もアシスタントが自動で行ってくれるので、ほぼボタン一つで利用可能になります)。 できることは大きく分けて二つ。 ビューの状態を2Dまたは3Dで表示する。ビューやレイヤーをリアルタイムで編集する。 通知センター(NSNotification
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く