スマートデバイスアプリ開発のあれやこれや

DDDについて学んだこと

DDD

この本、すごく素晴らしい。 little-hands.booth.pm 作者さんのGitHubのIssueも併せて読みたい。読者さんからの質問に丁寧に答えられており、本を読んでいて思った「こういうパターンってどういう設計するのがベター?」といった疑問は大体解決出来る。 gith…

2台目のMint60を作った話

経緯 2年ほど前に初めて自作キーボードを作りました。 niwaka.hateblo.jp あれから暫く経ち,気が付いたら何かのタイミングで左側のProMicro(micro USB接続口)がもげてしまっていました。半田ごてやハンダ吸い取り機などを駆使して修理を試みたものの,みっ…

Next.jsのテスト環境を構築する

1. Next.jsの環境を作成する 公式ページの手順で雛形プロジェクトを生成する。 npx create-next-app 2. テスト関係の依存ライブラリを導入する 導入するのは以下のライブラリ。 jest @babel/preset-env @babel/preset-react enzyme enzyme-adapter-react-16 …

Re:VIEW StarterのA4対応

脱Wordを掲げてAsciidocを使う日々が終わりそうです。 qiita.com Asciidocも悪くないのですが,以下の点が気になっていたのでこれを期にRe:VIEWに乗り換えようかと思っています。 英語(例: Amazon Web Services)を入れると変にスペースが出来る PDF出力する…

Firebaseに入門してみた

あけましておめでとうございます。今年は公私共に実りのある1年にするべく,決意を新たに頑張りたいと思います。Qiitaやはてなブログでのアウトプット,GitHubでのソース公開も積極的に行っていきたいですね。(今の会社からそろそろ巣立とうかと考えながら……

Mint60を作ってみた

ゆかりさんが販売されている自作キーボードのMint60を買いました。元々,職場ではMistelのBAROCCOを使っていたのですが「自宅でも分離型のキーボードが使いたい!」という思いから,電子工作初心者にも関わらず組み立てにチャレンジした次第です! www.archi…

AsciiDocでテーブルの中に画像やコードを表示したい!

AsciiDocが便利なので近頃ちょくちょく活用しています。もうWordやExcelには戻りたくないほど感動的な体験で,「今後作る設計書は全てAsciiDocで作ってやろう……!」と堅く心に誓ってしまうほどです。どの部分に惹かれるかは人それぞれですが,私にとっては以…

ReactNative事始め

必要に迫られてReactNativeを最近触っています。慣れるとサクサク画面が作れるので,ちょっと可能性を感じています……! SwiftやKotlinといったNative言語での開発も愉しいですが,こういった高速開発がしやすいツールも使えると活躍の幅が広がるのではないか…

EcmaScript5でのクラス実現パターン

はじめに……そして,結論 調べた結果,以下のように書くのが一番ベターっぽい気がしてきました。 var MyClass = function() { //Privateな属性 const privateValue = "private"; const privateMethod = function() { console.log("private"); } //Publicな属…

Optional型活用のすゝめ

はじめに niwaka.hateblo.jp Streamの話を↑でしましたが,コードレビューで指摘する内容として「Optional型を上手く使いましょう」という話もよくしています。Optional型もJava8から登場した比較的新しい文法になりますが,nullを扱う場合に便利になるので積…

Streamを活用すると綺麗に書けるJavaパターン

はじめに ここ数ヶ月くらいJavaのコードレビューをする機会が何回かありました。Javaは社内でも知っている人が多い言語ですが,歴史が長いだけあって昔々の文法を貫いてコード書く人が結構居ます。なかなか新しい要素を勉強し続けるのも辛いと思うのですが,…

Token認証対応のAPNs ProviderをJavaで実装する

iOS

久しぶりのiOSネタです。iOSデバイス相手のPUSH通知を実現するApple Push Notification Services(APNs)ですが、JWT認証の方を使ったことがなかったので今回はそちらに挑戦してみようと思います。 おさらい APNsサーバは、Providerとの交信方法を2種類提供し…

BigCalendarが表示されないときの覚書

最近,仕事の都合でReact.jsを触っています。規模が大きいアプリを作る際にコンポーネント指向の恩恵を感じており,(コンポーネント単位で)品質を維持しながら開発を進められる点が魅力的ですね。Reduxなどの状態管理ライブラリも触りたいのですが,今関わっ…

GradleでWebアプリ

今更ながらJavaのビルドツール「Gradle」を触ってみました。 Mavenに比べるとビルドスクリプトが手軽に書けるのが良いですね! (pom.xmlの構文エラーとの戦いを経験している特に) 今回はEclipseのGradleプロジェクト形式で作成したプロジェクトを Tomcat上で…

MultipeerConnectivityで実現する近距離無線通信:序

iOS

ふと思い立って,掲題のMultipeerConnectivity.frameworkを触ってみました。 近距離でのLINE風チャットアプリなんかが簡単に作れそうで楽しいAPIです……! 今回はMultipeerConnectivity.frameworkについて情報を整理してみました。 1. MultipeerConnectivity…

今年個人的に注力したい技術

あけましておめでとうございます。 今年も月に最低1件の技術ネタ投稿を目標にやっていきたいです。 さて,今年の抱負...ではないですが,今年は未経験の以下の技術について 調査しながら力を付けていきたいです。 ・node.js ・Golang ・データベース一般知識…

Spring BootアプリをTomcatにデプロイする

niwaka.hateblo.jp 前回のSpringBoot記事から暫く空きました...。 気がつけばバージョンも1.3.0.Releaseまで到達しており そのうち時間を取って知識を更新しなくてはと思っています。 とはいえ、今回はまた別の話です。 SpringBootは組み込みTomcatの機能を…

RxSwiftでUITableViewのバインド処理

iOS

niwaka.hateblo.jp ↑の記事で、UITableViewとのバインド時はセルが再利用されるので Disposableをdispose関数で無効にする(キリッ)と言ってましたが もっと良い方法がありました......。 1. RxSwiftはUITableViewのバインド機能を提供している そうなんです…

RxSwiftでデータバインド -補足編-

iOS

このエントリは、Qiitaに投稿した記事の補足です。qiita.com 上記の記事では、RxSwiftを使った双方向データバインドの 実現方法をまとめていますが、データバインドの解除方法についても 少し整理して書いておきたいと思います。 1. データバインドを解除し…

SwiftBondでデータバインドを実現する

iOS

Modelを実行した後、画面更新処理をせこせこ実装するのが面倒...。 ”更新処理を意識せずにiOSアプリが書けんものか”と思って色々調べてみると SwiftBondというOSSライブラリを発見しました。 github.com コイツを上手く使ってやると ViewControllerとViewMod…

Mockito事始め

Javaのモックライブラリ Mockito(もきーと?)を使ってみたので 導入方法や簡単な使い方を整理してみます。 1. モックライブラリって何? モック=模造品、まがい物 という意味です。 ある程度規模が大きいソフトウェアを開発するケースだと 自分担当のクラス…

Apacheのmod_rewriteモジュール

Apacheのmod_rewriteモジュールを使うことで URLとそれに紐付くコンテンツの対応関係を書き換えることができます。分かりやすくいうと、http://sample/test.htmlというページがあった場合に mod_rewriteを使うと架空のURL http://sample/hoge で同じtest.htm…

Docker環境構築(Mac篇)

巷で流行ってるContainer型仮想環境 DockerをMacにインストールしてみます。 手元の環境は以下の通りです。 Mac OS X 10.10.4 boot2docker 1.7 1. はじめに(環境概説) DockerはContainer型仮想環境構築ツールです。 ホストOSとゲストOSでカーネルなどのリソ…

KIFでiOSアプリケーションのUIテストを自動化する

iOS

iOSネイティブアプリケーションのUIテストの自動化方法をまとめます。 最近のUIテスト自動化ツールとして代表的なものは↓です。 Calabash KIF MonkeyRunner MonkeyRunnerは触ったことがないのでコメント出来ませんが CalabashはRubyでコードを書く必要があっ…

Swiftで実現する非推奨(deprecated)APIの置換処理

iOS

来月のWWDC2015にて、次期iOS(iOS 9?)が発表されそうです。 新しいAPIが使えるようになり、楽しみが増える一方で使えなくなるAPIもあり 開発しているアプリの新バージョン対応に右往左往するシーズンです。一般的に非推奨APIは以下の3種類に分類出来ます。…

楽なところから始めるObjective-CからSwiftへの移行

iOS

少し前から進めていたSwiftのお勉強の成果として Objective-CからSwiftに移行するときのポイントをまとめてみます。 自分自身、そこまで習熟者ではないので コンセプトとしては”楽なところ”から移行というテーマで 書いてみたいと思います。 Optionalでnilチ…

Tomcat 8.0系でのデータソース定義

Tomcat上で動くWebアプリでDB接続する必要があり データソースの定義ってどうやるんだ?!と思って調べてみました。 ちなみにEclipseでDynamic Web Projectで開発したケース......です。 検証環境は以下の通り。 Mac OS X 10.10.2 Tomcat 8.0.20 MySQL 5.6.2…

Spring BootでJSONデータを受け付けるWebAPIを作る

前回の記事の続きモノです。Spring Bootで作る簡単WebAPI - 俄niwaka.hateblo.jp↑の記事で、POSTでリクエストパラメータを受け付けるWebAPIを Spring Bootでサクッと作る方法をまとめてみましたが、今度は リクエストをJSON形式で受け取る方法を整理してみま…

Spring Bootで作る簡単WebAPI

サーバ通信を行うスマホアプリを開発する際にデータをやり取りするWebアプリ (※httpでリクエストするとJSONで結果を返す類のWebAPI)が必要だったので 何とか簡単に作れないかと模索ところ、Spring Bootがなかなか便利だった。 最大の便利ポイントはAPサーバ(…

Glassfish 4.1 + MySQL でデータソース定義

ソースコードからデータベースに対して直接コネクションを張ることも出来るが どうもアプリ→データベースで接続&切断を行うのはコストが高いらしい……。 なので、お作法としてはAPサーバにデータベースとのコネクションを持たせておいて アプリはAPサーバか…