しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

RailsとCarrierWaveで画像アップロードを実装する

CarrierWaveというGemを使って画像のアップロードを実装しました。 今回はUserモデルのimageというプロパティーに画像をセットする実装をします。 github.com CarrierWaveのインストール CarrierWaveを入れる前にImageMagickをインストールします。 Macの場…

【iOS11】設定アプリ内にある自分のアプリの設定画面へ遷移する

iPhoneの設定アプリには、下のように自分のアプリの設定ページが用意されています。 今回はここへ直接遷移する方法について調べました。 自分のアプリの設定画面への遷移方法 遷移方法は下の通りです。 if let url = URL(string: UIApplicationOpenSettingsU…

Railsでcrontabを管理できるwheneverというGemを使ってみる

Railsを使っていると「日時バッチ」「1時間に一度の処理」など定期的に実行したいタスクが出てきます。 管理方法としては普通にcrontabに書き込んだりJenkinsなどを使ってそれらのタスクを管理する方法があります。 しかし可能ならRailsプロジェクト上で実行…

「アプリ開発のためのUX講座」まとめ

「アプリ開発のためのUX講座」という動画講座がとても面白かったので、学んだ事や感想をまとめてみました。 動画はSchooの有料会員限定ですが、資料は下URLから見る事ができます。 schoo.jp そもそもUXってなにか? 授業で初めて知ったんですが、実はUXはISO…

はてなブログの過去記事にカテゴリーを付ける

はてなブログの過去記事にカテゴリーが全然付いてなかったので付ける事にしました。 カテゴリーなしは百記事以上あるので少しでも楽になるように工夫しつつ実施しました。 まずはエントリー一覧ページに移動します。 https://blog.hatena.ne.jp/llcc/llcc.ha…

LAContextのbiometryTypeがnoneになる問題

iOS

LAContextクラスのbiometryTypeプロパティーを使うと端末が指紋認証に対応しているか顔認証(FaceID)に対応しているかを判定する事ができます。 LAContext().biometryType == .faceID LAContext().biometryType == .touchID LAContextのbiometryTypeで起こっ…

UnityでスクリプトからTexture2Dを読み込む(C#)

UnityでSpriteのTextureをスクリプトで動的に変更する方法です。 Textureの配置場所 読み取りたいTextureはResourcesフォルダに入れる必要があります。 詳しくは下ページのResourcesに載っていました。 docs.unity3d.com Textureの読み込み Textureの読み込…

はてなブログのSSL対応でカスタムシェアボタンが動かなくなった時の対策

タイトルの通り、はてなブログのSSL化でカスタムシェアボタンが動かなくなったので対策を書いていきます。 利用させて頂いたカスタムシェアボタンは下サイトのものです。 www.yukihy.com SSL化で発生した問題 下のようにはてブ数とFacebookのシェア数がずっ…

【アプリ開発】AppLaunchPadでアプリのスクショを作ってみる

iOS

AppLaunchPadというWEBサービスを試してみました。 theapplaunchpad.com これはAppStoreやGooglePlayに掲載するおしゃれなスクリーンショットを簡単に作れるものです。 有料限定のテンプレートも多いのですが、下のような画面を簡単に作る事ができます。 App…

UITableViewのprefetchDataSourceについて調べてみる

iOS

iOS10からUITableViewのprefetchDataSourceというプロパティーが追加されてたので調べてみました。 prefetchDataSourceとは prefetchDataSourceはUITableViewの高速化に使うプロパティーです。 下のようにUITableViewDataSourcePrefetchingに準拠したオブジ…

NokogiriのインストールでERROR: cannot discover where libxml2 is located on your system. please make sure `pkg-config` is installed.というエラーが出た時の対策

Nokogiriをインストール中に表題のエラーが出た時の対処法です。 メッセージは下の通りです。 current directory: /Users/xxxxxx/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.3/ext/nokogiri /Users/xxxxxx/.rbenv/versions/2.5.1/bin/rub…

【Swift】Dateの日付のみを扱う方法を考える

iOS

iOSアプリ開発ではDate型があるのですが、これは日付型のみを扱う事ができません。 そのため「RealmなどのDBから特定日付のレコードを取り出したい」という時に開始日と終了日を指定する必要があって結構めんどくさいです。 class History: Object { @objc d…

DOFavoriteButtonでアニメーション付きお気に入りボタンを実装する

iOS

DOFavoriteButtonというアニメーション付きのボタンを実装できるライブラリを試してみました。 github.com DOFavoriteButtonのインストール CocoaPodsでインストールしました。 本家はSwift4に対応してないようなので、fumiyasacさんのSwift4対応フォークリ…

【iOS】CMSampleBufferGetImageBufferがnilを返す時の対処法

iOS

AVFoundationを使うと端末のカメラで撮っている映像をUIImageとして取得する事ができます。 その際にCMSampleBufferGetImageBufferというメソッドを使うんですが、これがnilを返した時の対処法です。 func captureOutput(_ output: AVCaptureOutput, didDrop…

C#のプロパティーの書き方

基本的なところですがC#のプロパティーの書き方について調べました。 プロパティーは下のように2種類の書き方があります。 class MyClass { public int myProperty1 = 0; public int myProperty2 { get { return 0; } set { int myValue = value; } } } それ…

UnityのUpdateとFixedUpdateの違いを確認する

Unityのフレーム毎に呼ばれる関数はUpdateとFixedUpdateがあります。 今回はこの2つの違いを確かめてみます。 UpdateとFixedUpdateの違い 2つはFixedUpdateは1秒間あたりの呼び出し回数が固定、Updateは端末の状態によって変わることがあるという違いがあり…

LICEcap for Macで画面が真っ黒になるのでGIPHYに乗り換えた

LICEcapで作られるGifが下のように真っ黒になる現象に遭遇しました。 再インストールしても直らないのでGIPHYというアプリに乗り換えました。 GIPHY Capture. The GIF MakerGiphy, Inc.VideoFree GIPHYとは GIPHYはおもしろGifをアップロードするサービスで…

【C#】UnityのEnumを変数化した時に is less accessible than field エラーが出たとき対策

下のようなコードでis less accessible than fieldエラーで出た時の対処法です。 enum GameType { Type1, Type2 }; public class MyScript : MonoBehaviour { public static GameType gameType = GameType.Type1; } enumがpublicでないことが原因だったので…

CASpringAnimationでバネのようなアニメーションをお手軽実装

iOS

CASpringAnimationというクラスを使ってバネのようなアニメーションを実装してみました。 まずは画面上にアニメーションさせたいViewをセットします。 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidL…

本レビュー: 「思わず買ってしまう」心のスイッチを見つけるための インサイト実践トレーニング

アプリの企画力アップの為に読んでみました。 「思わず買ってしまう」心のスイッチを見つけるための インサイト実践トレーニング作者: 桶谷功出版社/メーカー: ダイヤモンド社発売日: 2008/10/18メディア: 単行本購入: 12人 クリック: 32回この商品を含むブ…

AVAudioEngineで複数音源を合成して再生

iOS

AVAudioEngineを使って複数のmp3音源を同時再生する実装を試してみました。 プロジェクトを作ったら、再生したい音をプロジェクトに追加します。 今回はドとミの音を追加しました。 まずは単一の音源を再生します。 再生はAVAudioPlayerNodeを使って行います…

rbenv installでconfigure: error: C compiler cannot create executablesが出た時の対処法

rbenv install 2.5.1をした時に下エラーが発生しました。 環境はMacのHigh Sierraです。 BUILD FAILED (OS X 10.13.4 using ruby-build 20180424) Inspect or clean up the working tree at /var/folders/d3/wr7y5r3j0jn_y6q0p1524pnr0000gp/T/ruby-build.20…

【Swift】音声を扱うライブラリ、AudioKitを試してみる

iOS

ピアノアプリの改善の為にAudioKitについて調べてみました。 ピアノアプリPolo - 録音付きで練習できる鍵盤ピアノhiroki sugimotoミュージック無料 インストール まずはCocoaPodsでインストールします。 target 'MyApp' do use_frameworks! pod 'AudioKit' e…

アイコンフォントを使ってWEBページにアイコンを簡単表示

アイコンフォントを使ってWEBページにアイコンを表示してみました。 利用したバージョンはFontAwesomeの4系です。 まずはindex.htmlを作成してテキストを表示します。 <div id="test"> テキストテキスト </div> 次にアイコン表示の為のCSSをファイルに追加します。 今回は下のアイ…

WKProcessPoolが違ってもWKWebView同士のcookieを同期されていた

iOS

複数WKWebViewがある時の挙動を調べてみました。 まずは下のようにWKWebViewを2つ並べます。 import UIKit import WebKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let rect1 = CGRect(x: 0, y: 0, wid…

Rails runnerをDaemonで動かすGem、daemon-spawn

Railsで、Daemonを動かすためのメモです。 今回はdaemon-spawnというgemを使いました。 github.com Bundlerでインストールします。 requireはdaemon_spawnにする必要があるので下のように書きます。 gem 'daemon-spawn', require: 'daemon_spawn' 使い方とし…

2018年に読んだ本

ヘンテコノミクス 行動経済学まんが ヘンテコノミクス作者: 佐藤雅彦,菅俊一,高橋秀明出版社/メーカー: マガジンハウス発売日: 2017/11/16メディア: 単行本この商品を含むブログ (2件) を見る 行動経済学についてまんがで分かりやすくまとめてくれている本で…

【Swift】Crashlyticsにログを送る

iOS

Crashlyticsのエラーを追いかける為にログを仕掛けてみました。 ログの取り方は下の通りです。 CLSLogv("Log!!!", getVaList([])) 仕掛けたログはCrashlyticsで下のように表示されます。

【iOS11以降対応】WKWebViewのcookieの取得とセット

iOS

WKWebViewのcookieの取得とセットについて調べました。 cookieの取得は、getAllCookiesメソッドで行います。 webView.configuration.websiteDataStore.httpCookieStore.getAllCookies { print($0) } Cookieは下のようにData化してUserDefaultsに保存する事も…

iOSシミュレータで一部WEBページが開けない問題対応

iOS

シミュレータでWKWebViewの動作確認をしている時に起こった問題です。 WKWebViewを設置してはてなブログを開いたら、下のようにCSSが読まれない現象が発生しました。 色々設定見てもダメなので、シミュレータのSafariで適当なページ開いたら下のような表示が…