Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
セレクタを指定してオブジェクトにメッセージを送る処理について。 SEL sel = @selector(doSomething); if ([obj respondsToSelector:sel]) { [obj performSelector:sel]; } このようなコードをビルドすると、ARC有効時にperformSelector:の行について次の警告が出る。 PerformSelector may cause a leak because its selector is unknown 指示子@selectorによりセレクタを指定するのではなくSEL型変数を使用する場合にのみ警告が出る。実際、次のような場合には警告は出ない。 if ([obj respondsToSelector:@selector(doSomething)]) { [obj doSomething]; } if
iOS6からNSAttributedStringを使ってUILabelやUITextViewで表示する文字列を部分的に文字装飾できるようになりました。 まずは単純なフォントと色替え。 NSDictionary *stringAttributes = @{ NSForegroundColorAttributeName : [UIColor blueColor], NSFontAttributeName : [UIFont systemFontOfSize:14.0f] }; NSAttributedString *string = [[NSAttributedString alloc] initWithString:@"0123" attributes:stringAttributes]; _label.attributedText = string; このようになります。 この程度ならUI
I'm testing swift with CoreData and I created the following code: import UIKit import CoreData class Contact: NSManagedObject { @NSManaged var name: String @NSManaged var email: String class func execute(){ let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate) let context:NSManagedObjectContext = appDel.managedObjectContext! let entityDescripition = NSEntityDescripti
アラートっぽいのを表示するライブラリを作りたくなって,UIWindowを使ってみた. なんでwindowを使ったかというと,普通にviewにaddSubview:するのだと常に前面に表示されている保証が無いし,ライブラリのくせに自分の管理してないviewの階層をいじくるのはちょっとアレかなあと思ったから. UIWindowとは 昨今のモダンな環境でiOSアプリを作ってるとUIWindowを自分で作ることはまずないので気にしたこと無いかもしれないけど,UIWindowは特別なUIViewでview階層のルートとなるviewのこと. iOSアプリは例外なく全てのアプリが少なくともひとつのUIWindowを持っている. Xcode 3くらいまではテンプレートでwindowとってきてmakeKeyAndVisibleしていたのでなんとなく覚えている人もいるかと思う. Macと違ってiOSではひとつ
※当ブログではアフィリエイト広告を利用しています。 現在業務でiOSアプリを細々と作っていたりするのですが、APNS(Apple Push Notification Service)を利用したリモートプッシュ通知を実装する際にいろいろ手間取った点がありました。 実装するまでの手順をできるだけ詳細にまとめてみます。長いのでエントリを前編・後編に分けます。前編は「概要~プロビジョニングプロファイル」の準備の手順です。 APNS(Apple Push Notification Service)を利用したプッシュ通知の流れ プッシュ通知についての概要はApple公式ドキュメント「Local および Push Notification プログラミングガイド」で解説されていますが、単純化すると下記の流れとなります。 iPhone・iPadのアプリでプッシュ通知を許可し、APNSからデバイストークンを取
Android, iPhone等のスマートフォン向けアプリ開発などの話題を中心に、時事ネタなどを気の向くままに書いています。 先日、iOS8のGM seedが公開されました。iOS8の正式リリースも間近ですね。 ところで、iOS8対策は済んでいますか? もし対策が済んでいたとしても、この下にある「UITextView、UITextFieldで編集メニューの表示がおかしい」だけは読んでおく事をお勧めします。 全てのUITextView、UITextFieldを使用したアプリが関係する問題です。 私自身、iOS8はベータ版の時から見ていたので、いくつか不具合が出る箇所を発見していました。 そこで、まだGMの段階ですが、備忘録を兼ねてiOS8対策に関して情報共有したいと思います。 間違いがありましたならばご指摘ください。 今回記載するのは以下の内容です。 他にもiOS8ではDeprecatedに
iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど 以前、UISearchDisplayController についてのまとめを書いた。 [参考] Cocoaの日々: UISearchDisplayController と NSFetchedResultContoller を組み合わせる (3) 考察 さらに分かったことがあるので追記する。 [1] 検索毎に新規に UISearchResultsTableView が作り直される -[UISearchDisplayControllerDelegate searchDisplayController:willShowSearchResultsTableView:] において引数で渡される UITableView をデバッグ出力したところ、検索毎に異なることがわかった。 [44712:207
コレクション内から特定の要素を削除するいくつかの手法を考えてみる。 (Objective-C, Java, C++ それぞれの場合。) 最も単純なのは、コレクションに対してインデックスを指定して削除するというものだ。 i番目の要素を削除する。 Objective-Cの場合1 NSMutableArray* array = [NSMutableArray array]; [array addObject:[NSNumber numberWithInt:0]]; [array addObject:[NSNumber numberWithInt:1]]; [array addObject:[NSNumber numberWithInt:2]]; [array addObject:[NSNumber numberWithInt:3]]; [array addObject:[NSNumber num
矢口裕也です。 Advent Calendar 10日目はiOSのUITableViewの話をします。 ぼやき iOSアプリを開発していると70%くらいの時間はUITableViewに費やしている気がしてきます。 UITableViewは非常にめんどうなものですが、パフォーマンスがシビアでかつユーザーの快適さに直結するものなので大いに手間をかける価値があります。 この記事ではガクガク処理落ちするUITableViewを例として改善していきながら快適なUITableViewのつくりかたを解説します。 目的 以下のケーススタディでは次の目的でコードを改善していきます なめらかに動くようにする ここでのポイントは実際速くなくてもユーザが快適に感じればOKである、ということです。処理速度が高速である必要はありません。 戦略 UITableViewでのパフォーマンス問題は次の2点であることが多いです
このチュートリアルは次の言語で閲覧可能です: 英語, スペイン語このチュートリアルはiOSチュートリアルメンバーの Matthijs Hollemans 氏によって執筆されました。氏はiOSデベロッパー、デザイナーとして活躍しています。興味のある方はGoogle+ and Twitterへどうぞ。 またお会いしましたね。デバッグチュートリアルです。 前回のチュートリアル ではSIGABRT と EXC_BAD_ACCESSのエラーをXcodeのデバッガとエクセプションブレークポイントを使用して解決する方法を紹介しましたね。 でもこのチュートリアルで使用しているアプリは、それでもまだ何か問題があるようです。なかなか思ったように動いてはくれません。何が潜んでいるんでしょうか? 幸運にも、これらの問題を解決する為のテクニックはまだまだあります。そしてこのシリーズパート2ではそれらのテクニックにつ
このチュートリアルは次の言語で閲覧可能です: 英語, フランス語, スペイン語このチュートリアルはiOSチュートリアルメンバーの Matthijs Hollemans 氏によって執筆されました。氏はiOSデベロッパー、デザイナーとして活躍しています。興味のある方はGoogle+ and Twitterへどうぞ。 ある薄暗い雨の夕刻、楽しくアプリ開発に尽力していた貴方に突然の出来事が、、、ボンッ、 「あぁぁぁーーーーークラッシュしたぁーーーーー!!!」(悲しいバイオリンの音) ここで貴方の取る行動は…: まず、落ち着いてください! クラッシュを修正する事は決して難しい事ではありません。ここで焦ってランダムに修正を試みる事は事態を悪化させるだけです。必要な事はクラッシュを通してその原因を学び、正しいアプローチで修正して行く事です。 まず何よりも、どのファイルのどのコードがクラッシュを引き
案ずるより書くが易し… Swiftのウリの一つは(Objective-)?Cに直アクセスできることですが、それが意味するのは、JavaScriptに直アクセスできるということでもあったのです。 とりあえずJS使うだけなら こんだけ。 import JavaScriptCore let ctx = JSContext() let ary = [0, 1, 2, 3] var jsv = ctx.evaluateScript( "\(ary).map(function(n){return n*n})" ) println(jsv) var a = jsv.toArray() println(a) はい。見てのとおり、import JavaScriptCoreして、JSContext()でJSの実行環境をこしらえて、それに.evaluateScript()でString食わせれば、おしまい。 実
早速ですが横道にそれていきたいと思います。個人的にSwift言語で「これは!」と思ったポイントに、列挙型の強化があります。いままでObjective-Cでは、定数をまとめてたくさん変数するための構文、程度の認識が強かった列挙型ですが、Swiftではメソッドを持つことができるようになる等、大幅に強化されました。 1.列挙型 enum CompassPoint { case North case South case East case West } これはシンプルなサンプルですが、方位を列挙するためのenumです。それぞれの値は、CやObjective-Cとは異なり、int型が勝手に割り当てられたりすることはありません。 switch directionToHead { case .North: println("Lots of planets have a north") case .So
[新言語 Swift:image] Cocoa の優れた教師と考えられている Aaron Hillegass の意見とそれに対する反論が興味深い・・・ Big Nerd Ranch: “iOS Developers Need to Know Objective-C” by Aaron Hillegass: 11 June 2014 * * * iOS デベロッパにとって Objective-C の知識は必要だ アップルが Swift を発表したとき、少なからぬひとびとが「万歳! これで Objective-C を習わなくても iOS デベロッパになれる!」というのを聞いた。そんなひとに3つのことをいいたい。 When Apple announced Swift, I heard a few people say “Hurray! Now I can be an iOS de
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く