tomoyaonishiのブログ

iOSのことを中心に・・・その他もあるよ!

create-react-appでsassを使う

create-react-appの環境でsassを使いたかったのですが、導入方法がわからなかったのでメモです。 背景として、webフロント画面を作るのにオーバーキルなライブラリ(MaterialUI、OnsenUI)でハマることも多かった&カスタマイズしづらい&マテリアルデザインが多…

UIVIewControllerカスタムトランジションを理解する 1

前回以下の記事でカスタムアニメーションとカスタムプレゼンテーションについて説明しました。 UIVIewControllerカスタムトランジションを理解する 1 - tomoyaonishiのブログ 前回の記事で説明しきれなかったインタラクティブトランジションについて説明しま…

【2019】自由が丘で快適作業【電源、wi-fi、カフェ、PayPay】

自由が丘で快適作業ができるカフェを見つけました。 電源、Wi-Fi、PayPayあります。 自由が丘plus南口店というカフェです。 https://g.co/kgs/GEFKc6 100席ほどの席があり、テーブル席や2人席、1人用の席も多いです。電源も全ての席に付いています。ハンバー…

MacBookのストレージの大部分がシステムに占領されている件について

ストレージ250GBのMacBookを使っているのですが、ストレージ容量がなくなってきて、内訳を確認すると100GBくらいシステムに使われていました。調べてみるとXcode関連で80GBくらい空けることができました。その方法を残します。 調査 du -sh /* とかでルート…

UIVIewControllerカスタムトランジションを理解する 1

UIViewControllerのカスタムトランジション UIViewControllerのカスタムトランジションってめっちゃ複雑じゃないないですか? 実際にやってみるとわりと簡単なんですが、クラスがいろいろあったり、デリゲートメソッドも似たようなものが多くて、UIViewContr…

2019年のXXを予測する

UXが〜をやたら使う人はあまり好きではないのですが、最近CXとかいう言葉もあるようですね。 これ以上出てきてほしくないですが、次はEXが出てくると予測します。 Employee eXperiment 顧客側ではなくて、店舗、店員、従業員側の体験です。 当たってたら褒め…

人工知能(AI)の現状と課題を正しく理解できる本

iOS12でApple Books(iBooks)がアップデートされUI含めてとても便利にわかりやすくなっていたので最近はApple Books推しです。 Apple Booksで購入できる本で流行りの人工知能に関する本を2冊読みました。 一冊目はこちら。 人工知能は人間を超えるか松尾豊コ…

MaterialUIでTypographyが赤色になるバグ?

MaterialUIを使っていて、Typographyの文字が何故か赤色になるバグ?に遭遇しました。 ローカルビルド中は問題なかったのに、firebaseにhostingすると赤色になってしまっていました。 原因はIconを使っていることでした。よくわかりませんがIconが内部で使っ…

Onsen UIをReact+TypeScriptで使うときの手順

Onsen UIとは Onsen UIはcssフレームワークです。HTMLとしても使えますが、Vue.js, React.jsでも使えるラッパーが用意されています。 特徴は、AndroidならMaterialDesign、iOSならiOS Designに自動で見た目を切り替えてくれることです。モバイルWebアプリケ…

「React & Redux & TypeScript & fsa」 のシンプルなテンプレートを作った

ReactとReduxの環境をTypeScriptで構築するシンプルなテンプレート的なものを作りました。 create-react-appを使えば簡単にReact & TypeScript環境は作れるのですが、Reduxを入れ込むのが面倒&ディレクトリ作成など新規プロジェクトを作成するごとに機械的…

ライセンス情報を自動で設定に吐き出してくれるLicensePlistがすごい

LicensePlist LicensePlistというものを見つけました。CocoaPods、Carthage両対応でSettings.bundleを吐き出してくれて設定画面の自分のアプリ欄にライセンス表記をまとめて自動で表示できるという素晴らしいツールです。 この手のツールはどれもいまいちでC…

AtomからVisual Studio Codeに乗り換えた

Atomが起動しなかったり、終了しなかったりプロセスが不安定になることが多くイライラしたのでVisualStudioCodeに乗り換えました。 パフォーマンステストなどは以下の記事で丁寧にやってあるので安心して大丈夫かと思います。VisualStudioCodeすごい。 ryuta…

TwitterKit for iOSでログイン情報が保存されない

TwitterKit for iOSでログイン機能が正常に動作しないバグに直面しました。かなりの時間悩んでいたのですが、原因はLinked Frameworks and Binariesに追加するとき、TwitterKit.frameworkとTwitterCore.frameworkを追加していたことでした。 ドキュメント見…

AutoLayoutでViewの横幅に追従して表示するが画面からはみ出さないようにする

AutoLayoutであるViewの横にボタンをおいて、ボタンをViewの横幅に追従させるような画面があると思います。 たとえば、画像のようにタイトルの横にお気に入りボタンをおいて、タイトルの長さによってお気に入りボタンも右にずれていくような場面です。 この…

UILayoutGuideを使って意味のないUIViewを使わないようにする

UILayoutGuideとはAutoLayoutのための矩形領域表現クラスです。簡単に言うとUIViewからレンダリングとタッチイベント機能を取り去ったものです。 iOS11でSafeAreaが登場したのでview.safeAreaLayoutGuideが有名でしょうか、これがUILayoutGuideです。 実はiO…

AppStoreでリリース中のアプリのソースコードを公開してみた。

僕が開発したiOSアプリ「百選めぐり」のソースコードを公開しました。 試験的にnoteで有料販売にしたいと思います。ソースコード売買のプラットフォームもあるのですが、利用側がわざわざアカウント作るモチベがいまいちイメージできなかったのでnoteにして…

HighSierraにアップデートするとパーミッションがおかしくなったのでHomebrewを再インストールする

High SierraにアップデートしたらMacのパーミッションの周りが変わったみたいでhomebrewが使えなくなりました。 手動でパーミッション変えたり、解決策はあるようでしたが、めんどくさいのでHomebrew自体を再インストールすることにしました。 まずはアンイ…

UICollectionViewFlowLayoutAutomaticSizeを使用したCollectionViewの使い方

UICollectionViewFlowLayoutAutomaticSizeを使用したCollectionViewFlowLayoutでUICollectionViewを作ったことがなかったので勉強がてらまとめました。 だいたいありそうなUI構成は問題なくできそうです。UICollectionViewFlowLayoutAutomaticSizeを使いなが…

JavaScript, TypeScriptでシングルトン

iOSなどではよく(?最近はアンチパターンですかね)で使われるシングルトンをブラウザ環境上のJavaScriptでどう書くかわからなかったのでメモです。 コードはTypeScriptですが、こんな感じです。 定義側 interface StoreInterface { x: number; methodHoge: (…

UITableViewについて改めて考える

UITableViewについて改めて考えました。 iOSアプリとは切っても切れないUITableViewですが、リスト=UITableViewという考え方はどうかなとおもったのでメモがてら書きます。 結論から言うと再利用しないのであれば(もしくは再利用がごく少量)UIScrollViewの…

AutoLayoutでスワイプできるUITableViewCellのサンプルを更新しました。

セルをスワイプできるUITableViewのサンプルプロジェクトをずっと前に書いていましたがSwift1.2くらいだったので、Swift4に更新しました。 AutoLayoutを使っているのでConstraintを直接いじる形でもよかったのですが、一時的なViewの移動に最適なUIView.tran…

iPhoneX && UITabBarController && UIToolbar && SafeArea && Blur

iPhoneXでUITabBarControllerのタブをhiddenにしてもSafeAreaが伸びてくれずに、タブ上部に表示しているUIToolbarのblurがHomeIndicatorまで伸びてくれない場合に以下の対応で対症療法できることが判明しました。 UITabbarの上にUIToolbarの構成で、UIToolba…

FoursquareのAPIについて

FoursquareのAPIが無料枠アカウントでは、商用目的では使えないという旨の記載があった;; なんとかならないかと思い、直接Foursquareさんに問い合わせたところ、無料枠アカウントでも運用やソフトウェアの資金調達のための広告等はOKとの返事をもらいまし…

Homebrewを再インストール

El CapitanにアップデートしたらMacのパーミッションの周りが変わったみたいでhomebrewが使えなくなりました。 手動でパーミッション変えたり、解決策はあるようでしたが、めんどくさいのでHomebrew自体を再インストールすることにしました。 まずはアンイン…

CentOS7.1にてApacheとPythonでCGI

CentOS7.1にApacheを入れた状態でPythonをCGIとして動かしたかったのでその時の手順をメモしておきます。 IDCFクラウドの一番貧弱なサーバを借りてやっております。 Apache、ファイアウォールなどの設定はできていて、index.htmlは見れる状態からスタートで…

SwiftのAttributesをまとめた。

Swiftには定義や型に対して情報を補足するAttributesというものがあります。 Objective-CのNS_AVAILABLE_IOS(8_0)みたいなやつです。 Attributesのフォーマットは引数なしと引数ありの2通りです。 @attributename @attributename(arguments) @availability …

Swiftでxibで作成したカスタムビューのインスタンスを簡単に返す

Objective-Cではxibで作成したカスタムビューのインスタンスを以下のように生成して利用していました。 しかし、Swiftではinitのなかでselfに代入することはできないようです。(もし出来るならやり方教えてください。) なので以下のような書き方でxibから…

iOS8でコードでのAutoLayoutのやり方が地味に変わっていた件

あけましておめでとうございます。 仕事でAutoLayoutでUIを作っていてなんとなく-[UIView addConstraint], -[UIView addConstraints], -[UIView removeConstraint], -[UIView removeConstraints]の定義を見たところ、deprecatedになっていました。正式なdepr…

AutoLayoutでスワイプできるUITableViewCellを実装する

AutoLayoutを使ってセル上を左にスワイプすると、セルの右側がオープンするUITableViewCellを実装してみます。セルの削除のときによく出てくるあれを自分で実装する感じです。 AutoLayoutやstoryboardにある程度知識がある方を前提としていますので、適宜不…

UITableViewCellの高さを自動で計算する: UITableViewAutomaticDimension

UITableViewCellのUITableViewAutomaticDimensionを使えば、セルのそれぞれの高さを自動で計算させることができます。 optional func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat こいつとはおさらばで…