開発
Atomが起動しなかったり、終了しなかったりプロセスが不安定になることが多くイライラしたのでVisualStudioCodeに乗り換えました。 パフォーマンステストなどは以下の記事で丁寧にやってあるので安心して大丈夫かと思います。VisualStudioCodeすごい。 ryuta…
TwitterKit for iOSでログイン機能が正常に動作しないバグに直面しました。かなりの時間悩んでいたのですが、原因はLinked Frameworks and Binariesに追加するとき、TwitterKit.frameworkとTwitterCore.frameworkを追加していたことでした。 ドキュメント見…
AutoLayoutであるViewの横にボタンをおいて、ボタンをViewの横幅に追従させるような画面があると思います。 たとえば、画像のようにタイトルの横にお気に入りボタンをおいて、タイトルの長さによってお気に入りボタンも右にずれていくような場面です。 この…
UILayoutGuideとはAutoLayoutのための矩形領域表現クラスです。簡単に言うとUIViewからレンダリングとタッチイベント機能を取り去ったものです。 iOS11でSafeAreaが登場したのでview.safeAreaLayoutGuideが有名でしょうか、これがUILayoutGuideです。 実はiO…
僕が開発したiOSアプリ「百選めぐり」のソースコードを公開しました。 試験的にnoteで有料販売にしたいと思います。ソースコード売買のプラットフォームもあるのですが、利用側がわざわざアカウント作るモチベがいまいちイメージできなかったのでnoteにして…
High SierraにアップデートしたらMacのパーミッションの周りが変わったみたいでhomebrewが使えなくなりました。 手動でパーミッション変えたり、解決策はあるようでしたが、めんどくさいのでHomebrew自体を再インストールすることにしました。 まずはアンイ…
UICollectionViewFlowLayoutAutomaticSizeを使用したCollectionViewFlowLayoutでUICollectionViewを作ったことがなかったので勉強がてらまとめました。 だいたいありそうなUI構成は問題なくできそうです。UICollectionViewFlowLayoutAutomaticSizeを使いなが…
iOSなどではよく(?最近はアンチパターンですかね)で使われるシングルトンをブラウザ環境上のJavaScriptでどう書くかわからなかったのでメモです。 コードはTypeScriptですが、こんな感じです。 定義側 interface StoreInterface { x: number; methodHoge: (…
UITableViewについて改めて考えました。 iOSアプリとは切っても切れないUITableViewですが、リスト=UITableViewという考え方はどうかなとおもったのでメモがてら書きます。 結論から言うと再利用しないのであれば(もしくは再利用がごく少量)UIScrollViewの…
セルをスワイプできるUITableViewのサンプルプロジェクトをずっと前に書いていましたがSwift1.2くらいだったので、Swift4に更新しました。 AutoLayoutを使っているのでConstraintを直接いじる形でもよかったのですが、一時的なViewの移動に最適なUIView.tran…
iPhoneXでUITabBarControllerのタブをhiddenにしてもSafeAreaが伸びてくれずに、タブ上部に表示しているUIToolbarのblurがHomeIndicatorまで伸びてくれない場合に以下の対応で対症療法できることが判明しました。 UITabbarの上にUIToolbarの構成で、UIToolba…
FoursquareのAPIが無料枠アカウントでは、商用目的では使えないという旨の記載があった;; なんとかならないかと思い、直接Foursquareさんに問い合わせたところ、無料枠アカウントでも運用やソフトウェアの資金調達のための広告等はOKとの返事をもらいまし…
El CapitanにアップデートしたらMacのパーミッションの周りが変わったみたいでhomebrewが使えなくなりました。 手動でパーミッション変えたり、解決策はあるようでしたが、めんどくさいのでHomebrew自体を再インストールすることにしました。 まずはアンイン…
CentOS7.1にApacheを入れた状態でPythonをCGIとして動かしたかったのでその時の手順をメモしておきます。 IDCFクラウドの一番貧弱なサーバを借りてやっております。 Apache、ファイアウォールなどの設定はできていて、index.htmlは見れる状態からスタートで…
Swiftには定義や型に対して情報を補足するAttributesというものがあります。 Objective-CのNS_AVAILABLE_IOS(8_0)みたいなやつです。 Attributesのフォーマットは引数なしと引数ありの2通りです。 @attributename @attributename(arguments) @availability …
Objective-Cではxibで作成したカスタムビューのインスタンスを以下のように生成して利用していました。 しかし、Swiftではinitのなかでselfに代入することはできないようです。(もし出来るならやり方教えてください。) なので以下のような書き方でxibから…
あけましておめでとうございます。 仕事でAutoLayoutでUIを作っていてなんとなく-[UIView addConstraint], -[UIView addConstraints], -[UIView removeConstraint], -[UIView removeConstraints]の定義を見たところ、deprecatedになっていました。正式なdepr…
AutoLayoutを使ってセル上を左にスワイプすると、セルの右側がオープンするUITableViewCellを実装してみます。セルの削除のときによく出てくるあれを自分で実装する感じです。 AutoLayoutやstoryboardにある程度知識がある方を前提としていますので、適宜不…
UITableViewCellのUITableViewAutomaticDimensionを使えば、セルのそれぞれの高さを自動で計算させることができます。 optional func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat こいつとはおさらばで…
Xcode6で密かにベクター画像が使えるようになっています。 これを使えば@1x, @2x, @3x画像を用意する煩わしさから解放されます! 使い方は非常に簡単です。 PDF画像を@1xのサイズで書きだす。 AssetCatalogをクリックする New Image Setで画像セットを追加す…
Swiftでプライベートで開発中のアプリでこんな出来事に遭遇しました。 let array = ["1", "2", "3", "4"] NSUserDefaults.standardUserDefaults().setObject(array, forKey: "key") NSUserDefaults.standardUserDefaults().synchronize() let array = NSUser…
Twitterのリプライでin_reply_toを実装していて少しハマりました。 in_reply_to_status_idをパラメータに入れているのに、会話形式で表示されないという問題に遭遇しました。 SLRequestに渡すパラメータのNSDictionaryの中にin_reply_to_status_idをキーにNS…
注意事項というかObjective-CのenumをSwiftはどう解釈するかのメモ ObjC側でのenum typedef enum : NSUInteger { MyEnumValueA, MyEnumValueB, MyEnumValueC, } MyEnumValue; があったとする。この定数をSwift側からさわろうとするとほとんどの場合でエラー…
Swiftを使って開発していても、OSSなどはObjective-Cで書かれたものを使うことはよくあります。 SwiftからObjective-Cのクラスなどを使うにはヘッダーファイルを用意するだけですが、Objective-C側に書かれたenumの扱いには注意が必要です。 結論から言うと…
iOS8からUIVisualEffectViewというものが追加されました。このビューは様々なエフェクトを自動で表示することができます。Appleの公式すりガラス処理を実現することができます。 今回は、Swiftを使って、このクラスの使い方とAutoLayoutによるアニメーション…
iOS開発でメソッド、クラス、変数、定数の宣言に使えそうなものをまとめました。 Appleのヘッダーファイルを見ているとよく出てくる NS_AVAILABLE_IOS みたいなやつで個人的に使えそうだと思ったものをまとめます。 資料はこちら クラス・メソッド・定数・変…
AVFoundationによるキャプチャ機能をまとめたいと思います。 まず、普段あまり使うことがないAVFoundationの簡単な紹介です。このフレームワークはAppleが用意する「音声・動画などの時間ベースのメディアの再生や作成、編集の細かい作業を行うための超強力…
今回はpush通知を受信後バックグラウンドでアプリを起動させ、サーバから情報を取得する方法を紹介します。 そのまえに前回の記事を読むことを推奨します。 サイレント通知もしくは、通常のpush通知を受信した際にバックグラウンドで起動するという設定を行…
iOS7でアプリがバックグラウンドで動作できるAPIがいくつか追加されました BackgroundFetch これを有効にするとOSが定期的に良いタイミングでバックグラウンドでアプリを起動させ、AppDelegateの application:performFetchWithCompletionHandler: を実行して…