こんにちは。モバイルファースト室の中村(@_nkmrh)です。 仕事でSwiftを使うことはまだないのでSwiftについて色々気になっている今日この頃です。 今回はSwiftとObjective-C(以下、Obj-C)を1つのプロジェクト内でつかう方法と、両者の相違点について気になった点を紹介したいと思います。 Swift -> Obj-C まず、SwiftからObj-Cを使う方法です。 SwiftからObj-Cを使うには、[product module name]-Bridging-Header.hを作成します。 ※ [ProductModuleName]は通常ProductNameと同じです。ProductNameにアルファベット以外の文字を使っている場合、その文字は( _ )(アンダースコア)に置換されます。 Xcodeのメニュー"File > New > File > (iOS o
こんにちは、プラットフォーム開発グループの山口洋平です。 現在、新規iOSアプリをSwiftを使って開発しています。 先月WWDC2015が開催され、そこで Swift2 が発表されました。 Swiftのオープンソース化など色々と話題になりましたが、Swift自体も様々な機能拡張が行われ、これからのiOSアプリ開発は Swift2 が主流になっていくと思われます。 Swift2を使ったアプリの申請は9月頃まで待つ必要がありますが、今回は先立ってSwift2を使ってコードを書くなら知っておくべき機能、テクニックについて紹介していきたいと思います。 動作確認環境 Xcode 7.0 β4 で動作確認を行いました。 β版なので、今回紹介するコードは今後動かなくなる可能性があります。 guard による早期リターン Optional型を扱うとき、その値がnilなら早く処理を終えたいと思うことが何度
一週間ほど前から(おそらくTravis CIの環境がXcode 5.1に変わってから)Travis CI上でipaファイルの作成に失敗するようになってしまって、TestFlightにベータ版を自動的にアップロードすることができなくなっていたのを昨日ようやく直したのでメモ。 ↓ということで以前に書いた記事はちょっと古くなってしまいました。 本文はそのままですが、参照先のgistの内容はアップデートしてあります。 ユビレジのiPadアプリのCI環境をJenkinsからTravis CIに移行したときのまとめ - 24/7 twenty-four seven 失敗している箇所のエラーメッセージは下記の通り。ipaを作る前の、プロジェクトのビルドでコード署名をするところで失敗しているけど、これだけだと原因がよくわからないのでまず手元で同様のメッセージが出る状況を再現することを実行しました。 
iOS向けのライブラリを作りたいなと思っていて、Frameworkの作り方を調べていました。 ここでいうFrameworkというのは、Foundation.frameworkとかUIKit.frameworkとかのような、あれです。 iOS用Frameworkの作り方 Xcode4.5.1でiOS用のframeworkを作成する Static Libraryプロジェクトつくる Aggregateターゲット入れる フレームワーク用のInfo.plistつくる Run Scriptにビルドスクリプトを書く ビルドする Framework用のテンプレートはないということで、自分で作るとかなり大変な模様・・・。 テンプレートプロジェクトiOS-Universal-Framework もう少し調べてみると、この面倒な手順をまとめたプロジェクトテンプレートがGitHubで公開されていました。 iOS-
これからはベクターでアセットを管理!? Asset Catalog では、これまでビットマップ画像しか取り扱うことはできませんでしたが、Xcode 6 からは PDF 形式 と JPEG 形式 がサポートされました。特に新しいのが ベクターが扱えるようになったという点です! ベクターが扱えるようになったということは、いままでのように Retina や Non Retina で別々の画像を用意する必要がなくなったり、イメージを複数のサイズの View に配置したいときに1つのファイルだけ用意すれば良くなるということです。これはきっとプログラマーにとってもデザイナーにとっても嬉しいことですね! ということで使ってみました。 Asset Catalog でベクターを扱うには PDF 形式のアセットデータを用意する Asset Catalog でベクターとして認識できるのは PDF 形式のファイル
WWDCでのアップルの発表によると、iOS 8 では4000以上もの API が追加されたとのことですが、新しいAPIはどう使うのか、実際に何がどこまでできるのか、といった具体的なところが、英語のドキュメントや動画をながめているだけだと正直あまりよくわかりません。やはり実際にコード書いて動かしてみるのが一番わかりやすい、ということで今年もつくりました、 iOS 8 新機能のサンプルコード寄せ集めアプリ『iOS8-Sampler』 ソースコードは GitHub に置いてあります。 https://github.com/shu223/iOS8-Sampler ※使い方は Xcode 6 でビルドするだけ なので、デザイナーさんやディレクターさんもぜひ最寄りのエンジニアにビルドしてもらってください。 中身について 今回はデザイナー okazu 氏の協力により立派なアイコンやスプラッシュ画像が最初
#xcode6βで補完機能を使う方法 cocoaの関数名やクラス名は以前から長過ぎて覚えていられないと言われている中で、6月15日現在、xcode6βでは補完が効かないと言われています。 これではとてもじゃないですが、写経ひとつ満足に出来ません。 しかし、 ###ソースコードの中から日本語を無くす ことによって補完機能が使用出来ます。 ちなみにバージョンは6.0です。 ダブルクォーテーションで文字を入力する部分はもちろん、コメントでの日本語もしっかりと消しておきましょう。 ふと気付きにくい部分ですが、ソースファイルの一番上の created by Hoge の著名の部分が日本語名になっていることがあるのとファイルの制作年(2014年とか)にも要注意です。 ##追記:2014/06/19 xcode6-Beta2が公開されましたが、この問題は解決されていませんでした。 このバージョンでも日本
iOS 6から導入された Autolayout(オートレイアウト)を最近になって本格的に使うようになりました。 4-inch の iPhone が主流になりつつある中、アプリを Autolayout に対応させるのはほぼ必須といっても良いと思います。Storyboard と格闘してなんとかコツはつかめたものの UIScrollView だけは一筋縄ではいかず苦労しました。 というわけで Autolayout に対応した画面で UIScrollView を使う時のコツをまとめてみました。 なおこの記事で説明する内容は Storyboard 上で Autolayout がオンになっていることが前提になっています。 Autolayout 対応画面で UIScrollView を使うための2種類の方法 Autolayout に対応した画面で UIScrollView を使うには以下の2つの方法があ
比率の指定 先日 Xcode 5.1 が公開されましたが、皆さんインストールされましたでしょうか。Xcode 5.1 では Storyboard の Auto Layout の編集機能が少しアップデートされており、Aspect Ratio という制約が作れるようになりました。元々 NSConstraints では実現できましたが、Storyboard 上から編集できるのは便利ですね! AspectRatio 制約を追加してみる ということで使ってみます。まずは適当な Label を配置しました。分かりやすく SuperView からの Center X Alignment Constraint と Center Y Alignment Constraint を指定してます。 次に Pin ボタンを押してメニューを開きます。「Aspect Ratio」っていうのが増えてますね!これにチェック
本日iOS SDK 7.1 / Xcode 5.1にアップグレードを行った際にぶつかった所々の問題とTipsをまとめておきたいと思います。 arm64対応とCocoaPods Xcode 5.1からデフォルトのビルド設定$(ARCHS_STANDARD_32_BIT)がarm64、要するに64bit対応を含むようになり、arm64 armv7 armv7sの3つのアーキテクチャに対してビルドを行うようになりました。ソースコードからビルドを行っている場合は大抵問題ないと思うのですが、以下の様なケースでarm64対応を切りたい場合があります。 プロジェクト内にarm64アーキテクチャに対応していないstaticライブラリが含まれている場合。 64bitになると危険なバグが発生するおそれがあるコードが含まれている場合、例えばCGFloatやNSIntegerのサイズが変化したり、各種ポインタのサ
2014/02/09 追記 コメントのところでやり取りしているようにmergepbxの作者さんから連絡があって、この記事で書いた問題が修正されました! 今現在は merge=mergepbx がいい感じになってきているのでそっちがオススメです。 複数人でプログラミングしているとpbxprojがやたらとコンフリクトする 例えば、 Aさんが AALabel.m をプロジェクトに追加して Bさんが BBLabel.m をプロジェクトに追加して とただそれだけなのにマージのときにコンフリクトするpbxprojさん。。。 ただそれぞれファイルを追加だけのことでコンフリクトするなんて… どうにかならんもんかいとTwitterでつぶやいたところ、 @azu_re さんから有り難い教えが! @tokorom gitはファイル別にマージ方法を指定できるので、mergepbxみたいなのをpbxprojのマージ
みなさん cocoapods を使って久しいかと思います。 僕がよくやるのが pod seach で検索して Homepage(大体githubのページ) を開いて README, 履歴, コードをざっと確認してそのライブラリを使うかどうか確認していました。 ただこれがいくつもあるとコピペで繰り返すのは面倒くさい作業でした。 pod try PODNAMEとすると、/tmp/CocoaPods/Try/ に(リポジトリにxcodあれば)サンプルプロジェクトをダウンロードしてXcodeで開くまでやってくれる。そのライブラリがすぐに試せるってこと。 — kishikawa katsumi (@k_katsumi) December 26, 2013 このツイートを見て try くそ便利だなと。 コマンドで browser を開ければいけてるやん!! と思って早速調べてみました。 cocoapo
Xcode5の新しい機能として、 Botという継続的インテグレーションツールが導入されました。 アプリ開発時に、ソースコードを書く以外の部分を担当してくれる、たよりになるツールです。 自動的にビルド・テスト・リリースまでしてくれるので、ちょっと楽に開発を進められるようになるかもしれません。 継続的インテグレーションツール(CIツール)としてはJenkinsが広く使われていますが、BotにはJenkinsとほぼ同様の機能があり、さらにiOS/Macアプリに特化した機能が追加されています。 今Jenkinsを使っている人も一回試してみてはいかがでしょうか。 なお、詳しい公式資料はこちらです。 Xcode Continuous Integration Guide Botの主な機能 Botには、主にこんな機能があります。 自動ビルド インテグレーション詳細情報の表示 BigScreenによるコクピ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く