読者です 読者をやめる 読者になる 読者になる

そーす

福岡在住のプログラマ

UITableViewCellの再利用するIDの管理を考える

すべてのCellをUITableViewCellのサブクラスで実装するときの話です。 UITableViewでCellの再利用をするときって以下の様な感じですよね。 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewC…

UITabBarに独自ボタンを追加する

TabにタブUITabBarItemじゃないViewを追加したいってことありますよね。 ↓のような Before After 実装 実装は簡単です。 UITabBarはUIViewのサブラクスでそれぞれのタブも単なるViewですので、リサイズして再配置すればいいだけです。 func relayoutTabView(…

コードからUITabBarControllerを作成

コードからUITabBarControlelr生成するときに少し躓いたので ダメな実装 convenience init() { self.init(nibName: nil, bundle: nil) homeViewController = HomeViewController() searchViewController = SearchViewController() homeViewController.tabBar…

16進数でColorリソースを管理する

saburesan.hatenablog.com 以前、R.Swiftを使ったリソース管理について少し書きました。 記事ではテキストのローカライズや画像の読み込みしか書いてないですが、他にもたくさん使えます 以下参照 github.com しかし、R.Swiftではカラーリソースの管理が~/Li…

SnapKitでAutoLayoutを簡単に書く

Storyboard使わない派なので、コードでAutoLayoutの制約を書くのですがすごくめんどくさいです。 例えば、self.viewの画面上部にnavigationViewというナビゲーションバーっぽいViewを設定したいときは self.view.addConstraints([ NSLayoutConstraint( item:…

R.swiftでリソース関連のハードコーディングを無くす

AndroidをやったあとにiOSをやると「ここ!使いにくいぃぃいい!!」って思う所が結構あります。 「画像、テキストなどのリソースアクセスがファイル名をハードコーディングする必要がある」 これです。 コンパイル時にエラーが検出できず、実際に実行して表…

Xcode便利ショートカット

WIP

同一ファイル内の変数名などの一括選択 Cmd + Ctrl + E

UIWindowに背景を追加する

背景を共通でViewControllerだけ変えたい状況があったので。 AppDelegate.swift func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { window = UIWindow(frame: UIScreen.mainSc…

iOSのLocalizable.stringsをプロパティアクセスで使えるようにしたい

iOSのテキストのローカライズって Localizable.strings "hello_world" = "Hello, world!" var helloWorld = NSLocalizedString("hello_world", comment: "") ってやると思うんですが、これkeyをタイポしても実行してView見てみないと気づかないし、ハードコ…

「追記あり」最前面のViewControllerにForeground/Backgroundのイベントを通知する

【追記】 最前面の取得方法にミスあったのでこっちを参照 saburesan.hatenablog.com AndroidやってたのでiOSのviewDidAppearとAndroidのonResumeっておんなじなのかと思ってたのですが、どうやら全然違うらしくちょっとハマりました。 ネットで調べるとNotif…

gitで削除commit済みのファイルを復活させる

git rev-list -n 1 HEAD -- <file paht> git rev-list これはコミットのハッシュを取得するコマンド -n は表示する最大数の指定。 HEADで全てのコミットを対象にしている。</file>

Themeについて

Theme変更 Themeはアプリ全体のUIに影響を与えます。デフォルトはFuseのThemeのBasicになっています。 <App Theme="Basic"> <StackPanel> <Button /> <Switch /> <Slider /> </StackPanel> </App> デバイスのネイティブUIに変更 Nativeに変更するとデバイスのネイティブUIに置き換えてくれます。 <App Theme="Native"> <StackPanel> <Button /> <Switch /> <Slider /> </StackPanel> </App> Androidの方で確…

Sketch Plugin 「Sketch-palette」

github.com Sketchのカラーパレットを使いやすくしてくれるプラグインです。 カラーパレットってのはこれのことです インストール plugin用ディレクトリにクローンしましょう cd ~/Library/Application Support/com.bohemiancoding.sketch3/Plugins git clon…

ADB idea便利

今更ですが… github.com インストール Preferences -> Browse Repositories -> ADB ideaを検索 使い方 コマンド一覧のショートカットキー Ctl + Shift + A FindActionから検索 ⌘ + Shift + A 2台以上接続してても、選択もできるしすごく楽。

Android Intent-filterのマッチングについて

RESTfulなAPIならこの仕様だと困らないか?って話。 とりあえず、AndroidのIntent-filterのパスマッチングの仕様について。 固定Uriでのマッチング http://saburesan.hatenablog.com でIntentが発行された時にMainActivityを起動したい時 <activity android:name=".MainActivity" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.VIEW" /> …</action></intent-filter></activity>

Orma Inner join バグ

v2.0.6 @Table public class Message { @PrimaryKey(auto = false, onConflict = OnConflict.IGNORE) public long id; @Column public String body; @Column public Image image; @Column public Image image2; } こういう2つ以上同じモデルをカラムとしても…

Ormaを既存プロジェクトに導入してみた

Ormaを導入してみた。 v2.0 選んだ理由 既存のプロジェクトへの導入だったので、モデルの制限が少ない方が良い Android-CleanArchitectureを意識して設計していて、データ層はRxのSingle<POJO>を返すInterfaceのみを公開しているので、POJOが使えて現状の…

Fuse Sketchからインポートする

今回はSketchからインポートしてアプリを作成します。 Fuseプロジェクト作成 先にプロジェクトを作っておく必要があります % fuse create app SketchSample Sketchのプロジェクトを作成 今回はサンプルで以下のようなアプリのデザインっぽいのを作りました。…

Fuse インストールからAndroid実機リアルタイムプレビューまで

最近知ったワンソースでiOS,Androidのアプリが作れるツール「Fuse」 なんとSketchから直接インポートでアプリが出来るというかなり良さ気なツールです!! Sketchの変更をリアルタイムで実機プレビューが出来るらしい。。。素晴らしい。 ってことで導入 イン…

Push通知サービス「Batch」をAndroidに入れてみる

Parse.comがお亡くなりになりました。 ので、代替サービスを探している方もいると思います。 そこでこんな記事が jp.techcrunch.com Firebaseは業務でAndroidアプリに使ってるので知ってたのですが、Batchは知りませんでした。 取りあえず、個人開発で使って…

言語設定をコードで切り替える

海外向けアプリを作っているんですが、 ある国だと端末に言語設定が無い場合があるのでアプリ自体に言語切替機能が付いてる事が多いようだったので 弊社もアプリ内に言語設定を変更出来る機能をつけました。 以下やりかた String lang = "in";//設定したい言…

Webから引っ張ってきた画像をRepeatさせる

String imageSource = "http://....."; Single .create(new Single.OnSubscribe<BitmapDrawable>() { @Override public void call(SingleSubscriber singleSubscriber) { try { //Webから画像読み込み URL url = new URL(imageSource); HttpURLConnection connection = (Http</bitmapdrawable>…

テキストの共通化

アプリやWebのデザインやってるとレイアウト違うけどテキスト同じって場合ありますよね。 複数ある場合全部変えるの面倒ですが、Sketchなら共通化できます。 共通化したいテキストを選択してツールバーにある上記のボタンを押してシンボル化します。 あとは…