objc.io publishes books, videos, and articles on advanced techniques for iOS and macOS development.
FacebookやTwitter、LINEなど多くのサービスで使われているPUSH通知機能を実装してみます。証明書の準備やサーバ側の実装などの説明は省きますので、詳細に知りたい方は下記をご参考下さい。 * PUSH通知機能を持ったiPhoneアプリを作る(証明書の作成) * iPhoneアプリにPush通知機能を実装する方法のまとめ - もとまか日記 デバイスの登録 「デバイストークン」をサーバ側へ送信します。 PUSH通知を送る際には、このデバイストークンを指定してメッセージを送ります。 // アプリ起動時 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // PUSH通知を登録 [[UIApplication sh
iOSアプリ開発担当の菅原です。 iPhoneやiPadのア[...]【厳選】日本の全iOSプログラマに捧ぐ!iPhoneアプリ制作に参考になりすぎるデザインリンク集15選 by Yu Sugawara in Design · Mobile — 2013/07/18 iOSアプリ開発担当の菅原です。 iPhoneやiPadのアプリ開発はすべて一人で販売するところまで持っていけるのが魅力の1つです。 アプリ開発作業を大きく分類しますと プログラム デザイン 販売 にわかれます。販売に関してはAppStoreがあるので、心配はありません。残りのプログラムとデザインですが、なかなか両方を得意にするというのが難しいと思います。僕はプログラムは出来るのですがデザインがからっきしダメです。 今日はそういったデザインが苦手なプログラマ向けに参考になるデザインリンク集をご紹介いたします。個人のアプリ開
こんにちは、@yoheiMuneです。 「ロックボタン + ホームボタン」の同時押しで取得できるスクリーンショット。 それをObjective-Cのプログラムから取得する方法をブログに書きたいと思います。 画面全体のスクリーンショットを撮る 取得可能なスクリーンショットは大きく2種類で、まずは1つ目を紹介します。 1つ目は、「ロックボタン + ホームボタン」の同時押しで取得できるスクリーンショットとほぼ同じ物を取得できる実装方法です。 以下のように実装します。 // 必要なライブラリを読み込みます #import <CoreGraphics/CoreGraphics.h> #import <QuartzCore/QuartzCore.h> 〜〜 省略 〜〜 // キャプチャ対象をWindowにします。 UIWindow *window = [[UIApplication sharedApp
iOSアプリのデータ操作はMagical Recordでマジ簡単!:生産性ガチアゲなオープンソースiOSライブラリ(3)(1/2 ページ) ゼロからiOS SDK開発を始める新規開発者でも超高速・高品質な開発を可能にするオープンソースのライブラリを目的別に紹介していく連載です。実際にライブラリを組み込みながら技術的な側面も併せて詳細に説明していきます。今回は、アップル製O/RマッピングのCoreDataを使いやすくするObjective-Cライブラリについて、概要や使い方を紹介します。 アプリの品質と生産性の向上もライブラリが助けてくれる アプリ開発を行ううえで絶対的に重要な要素の1つとして「品質」の問題があります。どんなに見た目が美しいアプリを作成しても、どんなに最新の技術を駆使しても品質が悪ければ良いアプリとはいえません。 品質といってもその定義は非常に広く、見る人によってその定義は異
こんにちは。 Sleipnir Mobile for iPhone / iPad 開発担当の宮本です。 調べてみると、Sleipnir Mobile の最初のコミットは 2010年9月6日で、もう3年近く開発しているようです。最初はこんな貧弱な API でブラウザなんて作れるわけ無いと思っていましたが、なんとかなるものですね。今では多くのユーザーさんに使っていただけるプロダクトになりました。 今回は、この3年間で、使ってきた UIWebView の技を紹介したいと思います。詳細な方法については書きませんが、UIWebView で何ができて何ができないのかはわかるかと思います。それぞれの詳細なやり方については機会があれば書いていきたいです。 目次 長くなりそうなので、目次を用意しました。 余裕があればアップデートするので、ブックマークでもしておいてください。 UIWebView の API
今日はGithubに公開したiOS用のライブラリを Travis CI と Coveralls に対応した手順を紹介したいと思います。 なお、実際にこれらを適用して運用しているリポジトリのサンプルは、 https://github.com/tokorom/BlockInjection になります。 前提条件 GitHubを使っていること GitHubでなんらかiOS/Mac用のライブラリを公開していること Travis CI https://travis-ci.org/ 目的 公開しているライブラリの最新コードがきちんとビルドが通るものか、テストが通る状態かを明示できます。 iOS用のCI環境を用意するのは通常すごく敷居が高い(物理的にMacが必要)のですが、Travis CIはiOS/Mac用のライブラリのCIを無料で請け負ってくれるかなり太っ腹なサービスです。 事前準備 Travis
Objective-C のプロパティの属性を指定するとき従うべきガイドラインをまとめた。 できる限り nonatomic を指定する atomic にしてもパフォーマンスが悪化するだけでほとんどメリットがない(参考:StackOverflow - Atomic vs nonatomic properties)。 nonatomic と atomic の使い分けの指針は次のとおり: 参照型: メモリアドレスのみの書き込みなので、常にnonatomicでよい プリミティブ型: int, BOOL等ワンステップでの書き込みが可能: 常にnonatomicでよい 単一のスレッドからしかアクセスされない: 設計に気をつけつつnonatomic推奨 複数のスレッドからのアクセスがあり、long,構造体などサイズの大きい値: atomic推奨 (thx to @takasek) 複数のスレッドから同時に
練習で作っている時計アプリも、そろそろ形になってきました。 前回は NSUserDefaults を使い、アプリケーションの設定を保存しました。 しかし、この方法ではデータの検索をしたり、データの相互関係(リレーション)を実現するには、少し力不足… でも、そこは大丈夫。iPhoneはさすがスマートフォンと言うだけあって、標準でSQLiteを使う事ができちゃうんです!!(Androidもそうらしいですよ) しかも、普段SQLを使っていない人でもある程度扱えるよう、ORマッパー的な機能が用意されています。 Appleはこれらの、バックエンドのストレージ、それらを操作するコンテキスト、データ構造を扱うモデルを、CoreData(wikipedia)というフレームワークに纏めて提供しています。 今日はこれを扱っていこうと思います。 Core Dataコトハジメ Core Dataの手っ取り早いサン
昨日は RubyMotion のもくもく会でした。 先日の RubyMotion Kaigi 2013 で 実践RubyMotion という題目で発表したのだけど、テストについてはprintデバッグ上等だ、このクソムシがとか言ってかなり適当に済ませてしまった。ので、もくもく会ではテスト周りに手をつけるぞと思い、そういえば Travis CI が RubyMotion に対応してたのも思い出し RubyMotion のテストを Travis CI で回すのを検証した。 が、手間取るかと思った Travis CI 周りはとっても簡単で、.travis.yml に language: objective-c と書くだけであっさり動いてしまった。 というわけで RubyMotion アプリの継続的インテグレーションは .travis.yml を一行書けば完了です。終わり・・・じゃあまったくブログ記
アプリが大きくなるとstoryboardの小回りの利かなさに泣きたくなることがあると思います。 そうした反動からすべてのUIをコードで実装しているiOS開発者も少なくないと思います。 自分は全部storyboardにして痛い目にあってから、全部コードにしてまた痛い目に遭い、 結局コードとxibとstoryboardを上手く使い分けるのが良いという結論に達しました。 最近、やり方が定まってきてストレスを感じなくなってきたので方法をまとめます。 これから書くことは個人の見解ですが、自分のやり方を決める上では無駄にならないと思います。 使い分け方と理由 基本方針: 以下に挙げる条件にマッチする場合除いて、コードで実装を行います。 xibを使う条件 viewの複雑度が高い場合(subviewが2,3個以上の場合)にはxibを使います。 xibを利用する理由は以下のような退屈なコードをたくさ
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
Please note: this article is part of the older "Objective-C era" on Cocoa with Love. I don't keep these articles up-to-date; please be wary of broken code or potentially out-of-date information. Read "A new era for Cocoa with Love" for more. If you require only a single instance of an object in your application, where should it go? How should you control and manage it? Here are some different appr
EngineeringMantle: a Model Framework for Objective-CLately, we've been shipping more in GitHub for Mac than ever before. Now that username autocompletion and Notification Center support are out the door, we're releasing the two frameworks that… Lately, we’ve been shipping more in GitHub for Mac than ever before. Now that username autocompletion and Notification Center support are out the door, we’
Captcha security check iosjp.com is for sale Please prove you're not a robot View Price Processing
May 8, 2013 This week a colleague sent me a snippet of Objective-C syntax I had never seen before. self.imageView.frame = (CGRect){.origin=CGPointMake(0.0f, 0.0f), .size=image.size}; This is (apparently) called C99 Initializer Syntax. This type of syntax can be used to initialize any struct in C (and Objective C) which is especially useful when working with CGRect and CGPoint. The Syntax Let’s tak
iOS SDK開発でOSSライブラリを使う際の基礎知識:生産性ガチアゲなオープンソースiOSライブラリ(1)(1/2 ページ) ゼロからiOS SDK開発を始める新規開発者でも超高速・高品質な開発を可能にするオープンソースのライブラリを目的別に紹介していく連載です。実際にライブラリを組み込みながら技術的な側面も合わせて詳細に説明していきます。初回は、OSSライブラリ活用の基本とUI系を中心にライブラリを16個紹介します。 OSSライブラリを活用した超高速・高品質な開発方法 オープンソース(以下、OSS)のライブラリを活用して開発を行うと、ライブラリ未使用の場合に比べて生産性、品質ともに圧倒的な違いが出ます。本連載では、ライブラリの種類、使い方、メリットなどを、実際に動くコードと一緒に解説していきます。 近年、iOS(iPhone、iPad)アプリ市場が急速に発展し、アプリ開発者は変化する状
Summary 新リテラル - NSNumberリテラル,Boxed Expression, NSArrayリテラル,NSDictionaryリテラル, 添字アクセス コンパイラがメモリ管理を肩代わり - ARC (Automatic Retain Count) Cでも無名関数 - Blocks マルチスレッドプログラミングを簡単に - GCD (Grand Central Dispatch) Bundlerライクなライブラリ管理 - CocoaPods はじめに Objective-C のプログラミング環境はどんどん良くなってる コーディングを楽に エンバグの軽減 一方、Web上の記事や書籍のコードは古いまま 古い情報に流されないためにも、新しいコンパイラやツールの機能を確認しておこう NSNumberリテラル void main(int argc, const char *argv[]
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く