IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
iOS7からメールアプリ等で使用されているUITableViewCellをスワイプし表示するメニューのOSSをいろいろ試してみたメモObjective-CiPhoneiOS 更に追記 最近はMGSwipeTableCellを利用しています。SWTableViewCellが稀に認識しないことがあって他にもバグっぽい挙動で悩んだりもしたので乗り換えました。 追記 SWTableViewCellに斜め問題を改善したPull Requestをしてたのですが無事本家にMargeされました。 別でアニメーションの改善も送ってたのですが、バウンスの仕方が同じアニメーションじゃないという理由で却下されちゃいました。んー残念。 求める物はiOS7のメールやリマインダーで左スワイプにしたとき表示される感じのメニューです。 OSSを探してみたら意外と多く見つかったので、その中から個人的に良さそうなものを選別して
@objcMembers class Person: NSObject { let firstName: String let lastName: String let age: Int init(firstName: String, lastName: String, age: Int) { self.firstName = firstName self.lastName = lastName self.age = age } override var description: String { return "\(firstName) \(lastName)" } } let alice = Person(firstName: "Alice", lastName: "Smith", age: 24) let bob = Person(firstName: "Bob", lastName
huin Job : Software Engineer(iOS, Android) Use : Objective-C, Swift, Java Like : Gadget, Apple, Photography, Art, Design, UI, UX More posts by huin. 日本のAppStoreでは未だ公開されていないfacebookの「Paper」ですが、 そのUIは実験的ながらも非常に高い完成度で個人的にはすごく好きなアプリです。 良いアプリがあれば "どうやって作っているのか" が気になるのがイチiOSエンジニアの性なんですが、facebook自体がPaperの裏側について説明した動画をしていて、非常に良い内容だったので紹介します。 なんのイベントなのかはよくわかってないのですが、 公開日は4/18なので比較的最近だと思います。 当然英語なので理解は浅いのです
self.view iOS 開発において、UIViewController の view の振る舞いは一番理解しておきたい点の一つです。 今回はその view に対して、メモリ管理とレイアウトの2つの視点を交えてアプローチを行い、 UIViewController の subclass を作成する上で、 UIViewController の各メソッドにどんな処理を書くべきか、そして何を書くべきでないか を説明出来ればなと思っています。 iOS 6 以降からを対象として考えていますので、 iOS 5 以前は取り扱いません。 self.view の振る舞い 扱いを学ぶには、まず対象の振る舞いを把握する事からです。 ライフサイクルとレイアウトサイクルの2点から簡単に復習します。 self.view のライフサイクル UIViewController の view がどのようなタイミングで生成され
iOSアプリケーションでWeb APIから返ってきたJSONを処理するのにNSNullの扱いに困っていて、事前にNSNullを取り除いてしまうのが事故を防ぐための確実な方法なのですが、再帰的にすべての要素を検査する以外になにかいい方法がないかと思って考えていたらちょっとおもしろい方法を思いついたので書いてみました。 kishikawakatsumi/CollectionUtils · GitHub ↑ に含まれるCUCompactArrayとCUCompactDictionaryです。 NSArrayとNSDictionaryのサブクラスとして実装されていて、次のようにして生成します。 (普通にalloc/initを使って生成することも可能です) NSArray *array = @[@"0", @"1", [NSNull null], @"2", [NSNull null], @"3"]
UILabelにはNSAttributedStringが指定できるので画像も表示してみる。 NSAttributedStringで画像というとCoreTextあたりで場所を確保して自分で描画とか結構ややこしいんだけど、UILabelなどには結局使えない。その代わりNSTextAttachmentが付いたのでこれをつかって画像を表示してしまおうってお話。 こんな感じ 要はNSTextAttachmentを使ってNSAttributedStringに入れればよいというだけ。 かいつまんで書くと以下な感じ。 nsas+image.h @interface NSMutableAttributedString (atimg) -(void)insertImage:(UIImage*)image bounds:(CGRect)bounds atIndex:(NSUInteger)index; @end
JavaScriptCore.frameworkの解説と、できることの限界を探ります。
年に1度のiOSデベロッパーのイベント「Conference with Developers」で話をしました。 JavaScriptCore.frameworkとObjective-C のRuntime APIという非常にマニアックな内容でしたが、まあまあわかるように伝えられたかなと思います。 話の内容は主に以下の3点です。 JavaScriptCore.frameworkの概要と使い方 Objective-C Runtime APIの活用方法 JavaScriptBridgeの紹介 伝えきれなかったことを補足しますと、JavaScriptBridgeはフルスクラッチで最初から最後まですべてJavaScriptでiOSアプリを書く、という用途のために作られたのではありません。 例としてそういうものを示しているのは、単に例は極端なほうがわかりやすいというだけの理由です。 どちらかというと、週
blocksには数多くの落とし穴があります。 しかしそれを乗り越えることができれば、非常にスマートにかける状況はそれなりに増えると思います。 ※注意:ここではARC環境での話です。一部MRCと状況が異なる場合があるかもしれません。 <blocksはObjective-cのオブジェクトをstrong参照でキャプチャする> ここでいうキャプチャとは、ポインタをコピーしている、ということです。 なんで?と思われる方も多いと思います。しかし理由ははっきりしていています。 例えば、dispatch_afterで処理を遅延することを考えてみましょう。 NSArray *sameArray = ...; int64_t delayInSeconds = 2.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSecon
ヘッダーファイルにおいて、#define(マクロ)を使って、(公開/非公開に関わらず)全ての定数にプレフィックスkをつけて定義しているコードを見かけることがあるが、下記理由から個人的にはあまり良くないのではないかと思っている。 型情報がない ヘッダーファイルインポート条件によっては、名前衝突により開発者が意図しないファイルにおいても定数置換が行われてしまう危険性がある 実際のところ、私は下記のように定数定義を行っている。 外部に公開する定数 extern constを付与 定数にはプレフィックスとしてクラス名をつける(名前衝突を避けるため) 内部でのみ使用する定数 static constを付与 定数にはプレフィックスとしてkをつける(よく見かけるパターン) コーディング例 以下は、BLGClassAクラスにおいて外部に公開する定数を定義、BLGClassBクラスにおいて内部で使用する定数
As a local variable: returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...}; As a property: @property (nonatomic, copy, nullability) returnType (^blockName)(parameterTypes); As a method parameter: - (void)someMethodThatTakesABlock:(returnType (^nullability)(parameterTypes))blockName;
Written by Mattt August 15th, 2018 (revised) This article has been translated into: 中文 The concept of equality is a central topic in philosophy and mathematics, with far-reaching implications for matters of ethics, justice, and public policy. From an empiricist perspective of the universe, two objects are equal if they’re indistinguishable by measurable observation. On a human scale, egalitarians
先日ちょっとしたMacアプリを作ったのですが、iOSアプリとの共通点や違いについて簡単にまとめてみます。 僕は業務や個人でふだんiOSアプリは作っているのですが、Macアプリは今回が初めてでした。全体としては、もちろんMac特有のお約束もあるにはあるのですが、iOSに馴れた人ならわりとすぐMacの開発が始められるという印象です。 今回作ったアプリはメニューバーに常駐するフィードリーダーで、Google Reader終了のタイミングで作りました。見た通り、非常にシンプルなものです。 更新された記事がレイアウトされるメインウィンドウが1枚、設定ウィンドウが1枚、インターフェースはそれくらいで、あとは記事の取得と保存にバックエンドで動くクロールマネージャがあります。 購読フィードが多い場合、クロールマネージャは適宜分割して読まれるブログを重みづけしつつ、バックグラウンドでクロールしていきます。あ
こんにちは!12/11担当の @koogawa です。どうぞよろしくお願いします。 さて、iPhoneには「加速度センサー」や「電子コンパス」など、いろいろなセンサーが搭載されていることはご存知だと思います。そこで今回は、iPhoneで検知できる様々な情報とその実装方法を、10個ピックアップしてまとめてました。メジャーなものからマニアックなものまで色々揃えましたので、何か一つでもお役に立てたら嬉しいです。 では、いってみましょう! 光・音声系 1. 輝度センサー iPhoneの画面輝度(明るさ)が取得・設定できます。 画面輝度=周りの明るさなので、輝度が高ければユーザが明るい場所にいると判断することもできそうです。ただ、中には画面輝度を固定に設定しているユーザもいるので、一概にこの基準が当てはまるとは限りません。 実装方法 画面輝度は次のように取得できます。
先週末に開催された『もくもく開発会@鎌倉 #2 by Qiita』にて、 iOS 7 で新たに加えられたAPI の使い方等を勉強しつつ、簡単なサンプルを集めたアプリをつくってGitHubにアップしました。 https://github.com/shu223/iOS7-Sampler 今のところ21個のサンプルが入っています。何か調べた折に随時追加していきます。 以下サンプルのリストです。 Dynamic Behaviors iOS7では UIView サブクラスに簡単に物理演算を適用することができるようになりました。 本サンプルでは、UIDynamicAnimator, UIGravityBehavior, UICollisionBehavior, UIDynamicItemBehavior を用いて 重力と衝突をシミュレート しています。 関連:UIKit で物理演算エンジンを使用する
最近、無料アプリや無料ゲームにアプリ内課金を設置してユーザにアイテムを購入してもらうタイプのものが増えています。App Store トップセールスのうち半数以上がこの無料 + アプリ内課金で占められています。今後アプリ内課金は iPhone/iPad アプリで儲けるための必須の機能になると言っても過言ではありません。 今回はアプリ内課金(In-App Purchase)のプログラミングについて StoreKit フレームワークの基本的な使い方から失敗しないためのポイントまで説明していきます。 販売できるアイテムの種類は5種類 アプリ内課金で販売できるアイテムの種類は5種類あります。 Consumable 消費アイテム。ユーザがアイテムを使うと無くなる。例えばシューティングゲームの弾丸やコイン落としゲームのコインなど。同じアイテムを何回でも購入可能 Non-Consumable 非消費アイテ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く