cockscomblog?

cockscomb on hatena blog

iOS

SwiftUIでSFSafariViewControllerを使う手法の探求

SwiftUIからSFSafariViewControllerを使いたい場面は多い。 SafariView SFSafariViewControllerはビューコントローラーだから、UIViewControllerRepresentableを使ってSwiftUIのビューにしてしまうのが簡単か。 import SwiftUI import SafariServices struct…

紛らわしい文字列をもっと紛らわしくする

同僚にid:yashigani_w(ヤシガニ)とid:yigarashi(ワイイガラシ)がいる。いかにも似ているが、あるとき一緒に仕事をすることになって、紛らわしさが限界を超えた。 yashigani yigarashi そうとわかって見たら、なるほど「y」で始まって「i」で終わるのが似…

CoreImage.CIFilterBuiltins

iOSやmacOSで画像を加工しようとした場合、Core Image frameworkを使うのが簡単だ。画像をハードウェアの支援で高速に処理でき、内蔵された様々なフィルターを使うこともできる。Mac OS X 10.4で初めて搭載されて以来、しっかりとアップデートされ続けている…

Marzipanを予想した答え合わせ #WWDC19

昨年のWWDCよりさらに前に、Marzipanを予想すると称して、与太話を書いた。その時は「UIKitの移植」と「まったく新しいUIフレームワーク」とそれらの「グラデーション」の3パターンを予想していたが、結果としてはこれらがすべて出た。 Project Catalyst 初…

Marzipanを予想する

予想というか、根拠のない与太話です。 Marzipanと呼ばれるAppleのプロジェクトは、どのようなものになるのだろう。噂では、iOSとmacOSのアプリが一度に作れるようになるらしい。このふたつのOSのアプリを開発する上での主要な差異は、iOSのUIKitとmacOSのAp…

「iOS 11 Programming」を書きました

iOS 11 Programming著者:堤 修一,吉田 悠一,池田 翔,坂田 晃一,加藤 尋樹,川邉 雄介,岸川克己,所 友太,永野 哲久,加藤 寛人,発行日:2017年11月16日対応フォーマット:製本版,PDFPEAKSで購入する 今日から普通にお買い求めいただけます。 担当した章につい…

あなたの知らない UIKit の世界 — UITableView に UITextView を置きたい

UITableView の見た目で様々な要素を表示しつつ、その一部として UITextView を使いたい、という需要があると思う。最も身近な例は標準のメールアプリである。 これは UIKit の API を駆使することで実現可能である。本記事ではこれを実現する方法を通して、…

UIButtonの画像の位置を変えたい

UIButton の画像の位置を、タイトルの左側じゃなく上側や右側にしたい。画像が左側じゃないボタンのモックを見たとき、どうやって実現するかいつも少し悩む。ということでいくつかのアプローチを検討したい。 drawRect(_:) など UIButton は var titleLabel:…

マツコの知らない State Restoration の世界

慣れない街へ出かけるとき、電車の中で目的地までの道のりを「地図アプリ」で検索しておいて、駅を出てから地図を見て移動したことはありますか。あるいは「ネットショッピングアプリ」で欲しいものが見つかって、衝動買いするにはちょっと高価だったときに…

UIControlにOptionSetTypeで状態を追加する

新成人のみなさん、おめでとうございます。大人になるのは難しいことだけど、自由に自分の人生を歩んでほしいと思います。 UIControlState UIControlにはvar state: UIControlState { get }というプロパティがある。これはすべてのUIControlの状態を示す。UI…

Swiftを使って型付けされた画面遷移がしたい

皆さん今朝はどんな夢をみましたか。今日は私の初夢を紹介します。 prepareForSegue iOSアプリを開発していて、特にStoryboardを利用して遷移を作るとき、往々にしてそのコードは不完全になる。 ViewControllerの遷移をするときには、次に表示されるViewCont…

Swift 2 Error Handling in Practice #swift2symposium

Swift 2 から新たに導入されたエラーハンドリングに関する機能を実際のアプリで利用しようとすると、いくつか悩みどころがあることに気付く。これらの問題について議論を深め、実践的な解を求めていきたいと思う。 Which is better? — Optional type or thro…

Swift 1.2

第61回 Cocoa勉強会関西で“Swift 1.2 The long-awaited language updates”と題して発表した、Swift 1.2の主だった(おもしろい)変更点の紹介です。 if let Swift 1.2で最も改善されたのはif文です。if letでOptionalをunwrapできる機能が大きく向上し、複数…

iOS/OS X 用ライブラリ UTIKit を OSS でリリースしました

cockscomb/UTIKit UTI UTI とは Uniform Type Identifier のことで、iOS や OS X の世界で、ファイルなどの種類を表すために用いられる文字列です。 UTI の実例として、画像一般を表す public.image や、そのサブタイプで JPEG 画像を表す public.jpeg など…

WatchKitアーキテクチャ概論

来年初めにリリースされるというApple WatchのSDKがプレリリースされた。Appleはこれを WatchKit と呼ぶ。Apple Watchで動作するWatchKitアプリは、いったいどのようなアーキテクチャにより駆動されるのか。この興味深い仕組みについて考察する。 WatchKit -…

モバイルアプリのObserverパターン

ReactiveCocoa勉強会関西にてObserverパターンについてお話ししましたので、以下にその内容をまとめます。 Observerパターンは、GoFの23のデザインパターンのうちの一つで、モデルが状態の変化をしビューに通知するパターンです。GUIアプリケーションの開発…

iOSアプリ開発における便利OSSライブラリの選定について

(Andy Myers and the CocoaPods Dev team. Creative Commons - Attribution-NonCommercial 4.0 International) iOSアプリを作るとき、今日ではCocoaPodsを用いて簡単に便利なライブラリの力を借りることができる。 ライブラリを利用するメリットは多い。自分…

Web APIを利用するiOSアプリのテスト技法

もう先週ですが、表題のタイトルで「Consumer Service Engineer MeetUp Vol.1 ~iOS編~」という会でお話しさせていただきました。 このようなタイトルの発表にした理由についてですが、はてなとしてお話しするということで、ちょっと硬派な方に振ってみました…

iOSアプリ開発関連書籍、大量入荷のお知らせと、おすすめの10冊まとめ

京都に本社を置きWebサービス事業を展開する会社で、WebサービスやiOSアプリを作ったりしている。会社にはたくさんの技術書があるが、iOSアプリ開発関連の書籍がすこし足りないと感じていた。しかしながら読んでみたい本があったら自分で買ってしまうから、…

iOS 7におけるUIStatusBarStyleのベストプラクティス

photo by Janitors 前提 iOS 7からView Controller単位でステータスバーを設定しやすいようになりました。 ベストプラクティス Info.plist はじめに、Info.plistでUIViewControllerBasedStatusBarAppearanceがNOになっていないことを確認します。NOだったら…

Livre

Livre(リブリ) プライベート日記を写真アルバムやカレンダーで彩り、手帳よりも簡単に瞬間でスタンプと写真加工(カメラ)で料理、育児の写真をデコれる無料アプリNagisa-inc.jp.ライフスタイル無料 アプリの説明にこんな方にオススメっていう欄があって は…

iOS で写真.app による編集を CIFilter で再現

AssetsLibrary.framework でカメラロールから生の画像データが取り出せるほか、ただ UIImagePickerController を使うのに比べ柔軟にいろいろなことができる。それで、そのままふつうに使っていて遭遇する問題のひとつが、iOS 標準の写真アプリによる画像の加…

Cocoa 勉強会関西で Unit Test について話しました

テスト、まだまだこれからというところだけど、現在の知見について一度まとめておこうという体で話した。

conferenceWithDevelopers

パソコンだけ持って出発……— Hiroki Kato (@cockscomb) February 22, 2013 乗車成功 conferenceWithDevelopers きた。 #confwd— Hiroki Kato (@cockscomb) February 23, 2013 位置情報おかしくなってカナダにいることになってる— Hiroki Kato (@cockscomb) Fe…

iOS のフリック入力をちょっと便利にするたった一つの方法

iOS のフリック入力でさらに快適にタイプするために、「フリックのみ」に設定することができます。 「設定」→「一般」→「キーボード」→「キーボード」→「日本語 かな」と辿っていくと、「フリックのみ」という項目があります。これをオンにすることで、いわ…