Developer's Blog

iPhone 開発 アーカイブ

【Emacs で Objective-C】flymake で文法チェック

こんにちは。Objective-C は Emacs で書く宮本です。

Emacs で Objective-C のコードを書くなら以下のサイトがまとまっていてオススメです。
Emacs で iPhone アプリ開発を快適にするための設定

この中に flymake を使った文法チェックが紹介されているのですが、私が Objective-C を書き始めた頃のマシンでは快適でなかったので使ってませんでした。
しかし、もう昔に比べてマシンも良くなったので、もしかしたら快適に使えるのではないかと思って導入してみることにしました。

続きを読む

【Objective-C】NSObject クラスと NSObject プロトコルが分かれているのはなぜ?

こんにちは。開発担当の金内です。

Mac / iOS アプリ開発で使う Objective-C におけるルートクラスと言えば、泣く子も黙る NSObject です。Java における java.lang.Object や Python における object にあたるものが、Objective-C では NSObject なわけです。

さて、この NSObject にはクラスとプロトコルの両方があることをご存じでしょうか?そして、NSObject クラスは NSObject プロトコルを採用しています。これらはなぜ分かれているのでしょうか?クラスだけでは困るのでしょうか?

続きを読む

Blocks を使ってコールバックさせてみる

こんにちは!
共同開発部で日々コードと戯れております、福井です。

iOS 4.0 から追加された関数オブジェクト的なものである Blocks をご存知でしょうか。この Blocks のおかげで UIView のアニメーションは劇的に書きやすくなりました。もう本当に Blocks って素晴らしいですね。

アニメーション?
違う!違うよ!根本的に違うよ!
Blocks でやりたいのはアニメーションじゃないよ!
おれは Blocks でコールバックを書きたいんだ!
ということでさっそく書いてみました。

続きを読む

【 iOS 開発 Tips】あなたも気付いていないかもしれないメモリリークの恐怖

こんにちは、共同開発部 iOS アプリ開発担当の図子です。

iOS 開発をしている皆さんはメモリリークのチェックを行っていると思います。どのような方法で確認していますか?おそらく以下のような方法で行っていると思います。

・Static Analyzer を使う

・Instruments の Leaks テンプレート

でも、これだけでは見つからないメモリリークが起こりうることをご存じでしょうか?

続きを読む

Objective-C のルーツ! Smalltalk で純粋オブジェクト指向環境を体験しよう

Hello Squeak Smalltalk

 

こんにちは。オブジェクト指向な開発担当、金内です。

名著「達人プログラマー」では年に1つは新しいプログラミング言語を覚えることが推奨されています。たしかに新しい言語に触れると、慣れ親しんだ言語で凝り固まったアタマによい刺激になります。

嬉しいことに、世の中には既に数えきれないほどのプログラミング言語があり、新しい言語もどんどんどんどん生まれているので、「もう学ぶべき言語がないっす」ということは起こりませんね。

みなさんは「次に学ぶ言語」としてどんな言語に興味を持っているでしょうか?

今回は「次に学ぶ言語」としてもぴったりな Smalltalk をご紹介します。Smalltalk は、数あるプログラミング言語の中でも純粋なオブジェクト指向プログラミング環境の手本として高く評価されていて、最近では iPhone / iPad アプリの開発に欠かせない Objective-C のルーツとしても脚光をあびています。どうですか? 興味がわいてきましたか?

続きを読む

【iPhone/iPad】ホームに置いたWebアイコンからSafari以外のアプリを開かせるJavaScriptを作りました

blog_img_110803.png

こんにちは!林です。

今回は、iPhone アプリ開発者 / ウェブ開発者向けの記事です。
みなさんは、iPhone の Safari にある「ホーム画面に追加」という機能をご存知でしょうか。

以下の図のように見ているウェブページを、ホーム画面にアプリのように置くことができる機能です。
blog_img_110803_2.png
ホームに置かれたアイコンをタップすると、Safari が起動し、そのウェブページを閲覧できる仕組みになっています。
頻繁に使うページをホームに置いておくと大変便利です。

この機能を利用して、
アイコンから任意のアプリ(※1) を起動する JavaScript
を作成しました。
※1 URI スキームに対応しているアプリのみ対応しています。

続きを読む

【 iOS 開発 Tips】View のレイアウトをどうするか?

こんにちは、共同開発部 iOS アプリ開発担当の図子です。

iOS 開発をしている皆さんはどういったタイミングで View のレイアウトをおこなっていますか?私は1年くらい前までは ViewController の viewWillAppar 等のメソッド内や、ViewController から View へ情報をセットするタイミングで ViewController 側から直接 View の frame やその View が持つ UILabel の frame を触っていたりしていました。これだと、想定外のタイミングでレイアウトが崩れたり、ViewController 側のコード量がふくれあがってしまいがちであまり良くないと思います。また、autoresizingMask を使うと楽ですが少し込み入ったレイアウトが必要になってくると autoresizingMask では対応できなくなってしまいます。そこで最近私がよくおこっている方法をご紹介します。

続きを読む

NSView と UIView

こんにちは、iOS/Mac アプリ開発担当の宮本です。
最近は、Sleipnir Mobile for iPhone と Sleipnir for Mac を開発しています。

Sleipnir for Mac の開発では、UIKit と AppKit の違いに苦戦しています。
出てくるクラス名も接頭辞が違うだけのものが多いので、ほとんど変わらないと思っていたのですが、ふたを開けてみると全くの別物でした。
今回は、その中でベースのビューとなるクラス NSView と UIView の違いについて紹介します。
これから Mac アプリを開発する方は参考にしてみてください。

続きを読む

iPhone と Android で同じアプリを作るときの UI 設計ポイント

こんにちは。共同開発部企画担当の荻野と申します。

フェンリルでは自社のソフトウェアを開発する部署とは別に、他の企業や団体と共同でアプリケーションの開発をおこなう共同開発部という部署が存在します。

私はその中で企画提案の担当をしていますが、最近、「今ある iPhone アプリケーションを Android でも出したい」「iPhone と Android 同時開発してほしい」とのご相談をクライアント様よりいただく事が増えてきました。

droid-kun

続きを読む

Xcode 4 でデフォルトになった LLVM って何?

Xcode build bar

こんにちは。開発担当の金内です。

Xcode 4 は UI もすっかり変わりましたが、ビルドの要であるコンパイラもデフォルトが変更されています。その新しいコンパイラのキーワードが「LLVM」です。いまいち聞き慣れない方もいると思うので、今回はその LLVM について簡単にご紹介します。

続きを読む

UIView を簡単に拡大・縮小・回転させる transform プロパティ

UIView には、transform というプロパティがあります。このプロパティを使うと簡単に UIView を拡大・縮小・回転させることができます。transform プロバティの型は CGAffineTransform です。transform の中身は 3×3 の行列で、 z 軸の回転行列として扱うことができます。初期値は、単位行列になっています。

続きを読む

MapKit の地図に自作のピンを表示する

携帯端末の強みの一つとして、GPS 機能があります。その位置情報の活用方法としては様々なものがありますが、代表的なものは地図表示ではないでしょうか。iOS の MapKit にはデフォルトで位置を表示するピンが用意されていますが、最近自作のピンを設定する機会があったので、その方法について書きたいと思います。

続きを読む

Localizable.strings を CSV に変換する Python スクリプト書いた

先日リリースした FlickAddress では日中英、3つの言語に対応しています。日英くらいだとチーム内で大体翻訳できるわけですが、中国語となるとチーム内で処理できず、翻訳者の方とやり取りが発生します。するとやり取りの為の中間ファイルを作ったり等、時間がかかって仕方ありません。また日中英だけでも十分大変なのに、さらに多くの言語に対応するとなると、個々の Localizabl.strings を管理していくのでは話になりません。そこで Localizable.strings と CSV を相互に変換するスクリプトを書いてみました。

続きを読む

neocomplcache のスニペット補完でらくらくコーディング

今時の Vimmer ならみんな使っている neocomplcache にはスニペット補完という便利な機能があります。スニペット補完を使えば、あらかじめ登録しておいたコードのひな形を挿入することで実際のコーディング量を減らすことができます。

今回は neocomplcache におけるスニペット補完機能の導入とスニペットの設定方法を紹介します。

続きを読む

iOS で XML をパースする

iOS で使える XML パーサーは色々あります。
iOS 標準で使えるものは以下の2点

  • Cocoa Touch フレームワークで提供されている NSXMLParser
  • C言語のライブラリである libxml2 を直接利用

外部のライブラリでは主に以下のようなものがあります。

XML パーサーの中でも SAX と呼ばれる少し扱いにくいが比較的高速で省メモリなもの。DOM と呼ばれる扱いやすいがメモリを多く消費しやすいものがあります。

今回は Cocoa Touch フレームワークで提供されている NSXMLParser の使い方を紹介します。

続きを読む

Copyright © 2019 Fenrir Inc. All rights reserved.