Affinity Designer, Affinity Photo で実務レベルのウェブ制作は可能?

ウェブ業界の現状

通常ウェブデザインの業界では Adobe の Photoshop と Illustrator が一般的に使われていますが、イギリスの Serif が開発した Affinity Photo, Affinity Designer などのライバル製品が登場してからは脱Adobe の道が本格的に模索されるようになってきました。

レスポンシブデザインが必須の今、制作の流れとしては Photoshop などのピクセルベースペイントツールはバナーなどの画像素材作成のみに使用し、Illustrator や Sketch App などのベクターベースのレイアウトツールを使って全体のレイアウトを組む場合が多いかと思います。

そこで、Affinity Photo、Affinity Designer を使って実際の仕事でウェブ制作を完結することができるのかについて検証してみます。

Affinity Photo

https://affinity.serif.com/ja-jp/photo/

Affinity Photo は写真加工や RAW 現像など、写真を編集する機能に特化したソフトウェアです。Mac / Windows に対応しており、執筆時点では6,000円程度で購入でき、サブスクリプションなどの継続的な支払いはありません。
Photoshop の PSD 形式ファイルの読み書きが可能で、レイヤースタイルをある程度保ったまま読み込む事ができます。
色調補正や各種ブラシもそれなりに揃っているので通常の補正で困ることはなさそうです。

RGB, CMYK の両方に対応し、HDR合成やパノラマ結合など豊富な機能があり、単体のペイントソフトとして見るなら十分にパワフルで実用的なソフトです。ドロップシャドウや光彩、境界線などのレイヤースタイルも Photoshop と同じ感覚で使えます。ただし PSD ファイルの読み込みは完全とはいえず、信用はできません。日本語テキストの一部が文字化けしたり、サテンなどのレイヤースタイルエフェクトが欠落したりします。現時点ではテキストの縦書きにも非対応なので注意が必要です。
最初からすべて Affinity Photo を使って作ったデータをもとに制作を進めるなら問題なく使えますが、他の人が Photoshop を使って作ったファイルをもとを Affinity Photo で読み込んで使うとなると互換性にやや不安があります。

Affinity Designer

https://affinity.serif.com/ja-jp/designer/

Affinity Designer はベクターベースのドローツールで、こちらも執筆時点では6,000円ほどで購入できるサブスクリプション不要の買い切り型ソフトウェアです。Mac / Windows のどちらでも利用できます。
パスツールを使ったベクターはもちろん、ピクセルペルソナに切り替えることでピクセルベースのペイントも行うことができるようになるので、無機質なシェイプにアナログブラシの質感を与えることもできます。
特筆すべきは「シンボル」で、サイト内で繰り返し使うパーツをシンボルとして定義して配置すると、シンボルの1つを書き換えるだけで他のシンボルも同様に変化します。これを使うとヘッダーやフッターなどの共通パーツの管理が楽にできます。

もう1つの長所は「制約」で、アートボードのサイズ変更に対して位置やサイズをどのように変化させるかを指定できます。常に右上に配置したいものは制約で右上に指定しておくと、アートボードのサイズが変わっても右上の状態が維持されます。レスポンシブ対応のサイトをデザインする上で有用な機能です。

「アセット」もサイト作成には便利です。矢印やメニューアイコンなどのよく使う基本図形をアセットに登録しておくと、一覧から選んで簡単に配置できます。

一応 Illustrator の AI ファイルも読み込めますが互換性に関してはこちらも完璧を期待してはいけません。
書き出しに関しては AI は無く、主要なものとしては PNG, JPEG, GIF, TIFF のほか PSD, PDF, SVG, EPS などがあります。言い換えるならベクターのレイヤー構造を維持したまま他のソフトで読み込むことのできる形式はないということです。
CMYK には対応しますが執筆時点ではテキストの縦書きやトリムマーク(トンボ)作成機能はないのでパンフレット等の印刷物を作るには向かないと思います。

まとめ

Affinity Photo も Affinity Designer も素晴らしいソフトウェアで、Adobe系ソフトとの互換性や縦書きの問題を除けば十分に仕事で使えるように思います。少なくとも低価格ペイントツールの中では Photoshop Elements や Pixelmator よりも Affinity Photo のほうが優れています。Affinity Designer に関してはウェブ用途に限っていえば Illustrator 以上の実力と言って良いと思います。
現時点では Photoshop を完全に手放すのは難しい状況ですが、Creative Cloud のフォトプランにして月々のコストを抑えつつ Illustrator の代わりに Affinity Designer を使うというあたりが現実的な落とし所ではないでしょうか。

関数名によく使われる英単語(動詞)の意味とニュアンス

PHP に限らず、プログラミングで使われる多くの関数名は「動詞+目的語」という命名規則になっていることが多く、「insertPost()」であれば投稿を挿入するという意味が名前から読み取れます。
では投稿を削除する場合は delete でしょうか? それとも remove でしょうか?

関数は基本的に英語を使うのが鉄則ですが、似たような意味を持つ単語などが多く厳密な意味の違いがわかりにくいことがあります。
そこで、プログラミングで関数名として一般的に使われている頻出語句をピックアップし、主な用途と細かい意味、ニュアンス、使い分けについて調べてみました。

追加・作成

set 主にクラスのプロパティに値を代入する場合に用いる。
add 追加。配列・リストにデータ、オブジェクトを加えるケースが多い。数値の加算もこちらを用いる。
put 配列・リストにデータ、オブジェクトを追加するという点では add に似ているが、こちらは連想配列(HashMap)などにキーを指定して追加するケースが多い。
あるいはストリームへ文字列を出力する。
insert 配列・リストなどの任意の位置に挿入する。データベースへの新規追加を指す場合もある。
append 末尾に追加する。
prepend 先頭に追加する。
register 登録。一覧や名簿への登録。イベントハンドラなどの割り当てや関連付け。
make 何かを加工することによって別の役目を持つものを作り出す。
generate ルール・現象に基づいて何かを生成するときに用いる。電気を流すことで熱を発生させる場合や、機械がプログラムのとおりに何かを作り出す場合など。
create 新しく作る。データベースへの追加処理まで行うケースも有る。天地創造(the Creation)にも使われるように、何もないところに新しく何かを生み出すニュアンスがある。
build クエリ、構文を組み立てる。ソースコードをバイナリ化することを指す場合もある。部品を組み合わせて築き上げる、積み重ねて何かを成すというのが本来の意味。

保存・出力

save オブジェクトやファイルに加えた変更を保存する場合などに使う。本来の意味は「失わないようにする」なので「貯金をする」、「命を助ける」場合にも使われる。
store 貯蔵する、蓄える。ストレージやデータベースへの保存。
export 書き出し。形式を変換したり任意の形式で保存する。
output 出力。スクリーンへの出力・ファイルへの出力を指すことが多いが用途の広い単語。
write ファイル、ストリームへの書き込み。一行単位で追加書込することを示すことが多い。
show 項目の内容を表示する。
render 画像などを編集した結果を表示したり、項目を HTML などに変換した上で返す。

読み込み・検索・解析・取得

get クラスプロパティなどを読み取る。データの取得。
load ファイル全体を読み込む場合など。
import ファイルを対応形式に変換して読み込む。
read ファイル、ストリームから一行取り出す。
parse 分解して解析する。XML を要素ごとに分ける場合など、何らかの区切りをもとに分析する。あるいは何らかのオブジェクトを特定の型として解釈する。
request データを要求する。ネットワークを通じてデータ送信を要求する事に使う場合が多い。
find 情報の中から探し出す。見つかることが前提。一般的にはデータベースからIDなどのユニークな情報を手がかりに一件のみ取得する場合によく使われる。
search 情報の中に存在するか探してみる。無いかもしれない。
retrieve インデックスや URL をたどって情報を取得する。
extract 条件による抽出。対象となる連想配列、オブジェクトから特定のキー、フィールドの値を取り出す。
filter 条件による除外。条件に合わないものを隠す。
seek 連続したデータの中からあるデータが見つかるまで順番に探査する。
fetch (別の場所から)情報を取ってくる。CPU がメモリから命令コードを取ってくることを指す場合もあるが、データベースから情報を取得することを指すことが多い。
query データベースなどの情報源からデータを引き出すためのルールや条件を指定する。または SQL 文の実行。本来の意味は「尋ねる・質問する」

編集・変更・修正

update 情報の更新。データベースの既存レコードを変更する場合など。
edit データの書き換え。データベースのカラム単位で書き換える場合など。レコードの中心となるデータの書き換えのみを限定して指すこともある。
modify 部分的に修正する。edit より用途が広く、データのメインとなる箇所の変更はもちろん、それ以外の小さな変更であっても modify と表せる。
change 全く別の状態に変える。新しいデータで置き換えて古いデータは消滅する。
replace 順序・文字の入れ替え。
join データを前方又は後方に付け足す。
merge 複数のデータを結合する。データはソートにより混ざり合って継ぎ目がわからなくなる。
normalize 正規化。値を定められた範囲内に収めるなど、一定のルールに合うように加減する。
increase 数値・数量を増加させる。継続的に増加し続けるというニュアンスも持つため、増加を一定量進めるという意味合いが近い。
reduce 数値・数量を減らす。データ同士をまとめた結果として数が減るという場合にも使える。increase の反意語には decrease もあるが、そちらは徐々に減少するというニュアンスを持つ。
adjust 値を調整する。何らかの目的に合うまで値を増減させる。
fix 破損したデータを修復する。あるいは動かないように固定する。単純な修理から複雑な修理にまで使用できる。似た単語「repair」はよりフォーマルな言い回しで、より複雑で完全な修理にのみ用いられる。
restore 元の状態に復元する。保管場所から取り除いたものを再度保管し直す(re + store)。
correct 誤りのあるデータを正しく直す。
convert 別の形式に変換する。
enable 機能を有効にする。使用可能にする。
disable 機能を無効にする。使用を停止する。
toggle 状態を逆にする。有効であれば無効化し、無効であれば有効化する。
apply 適用する。当てはめる。

削除

delete データの削除。通常は元に戻すことができない。
remove データをリストや閲覧・アクセス可能な場所から取り除く。アクセス権のない領域への移動。取り除かれたデータが消滅するとは限らず、元に戻せる可能性がある。「帽子を脱ぐ」「靴を脱ぐ」も remove だが帽子や靴は消えない。
erase delete がデジタル色が強いのに対して、こちらは消しゴムでこすって消す場合などのアナログな用途にも使える。消しゴムで消すということは再びその場所に書き込めるようになるため、慣用的にメモリの内容を消す目的で使う場合がある。カセットテープ時代に erase を使っていた名残で CD-RW や DVD-RW の消去にも使う。
clear 中身を空にする。親となるオブジェクトや変数自体は消えない。
flush 溜まっているデータやログ、キャッシュを全て消す。流れている文字列などを一気に押し流して何もない状態にする。
dispose 処分。不必要なオブジェクトを片付けて専有していた領域を開放する。
destroy 完全かつ確実なオブジェクトの破棄。後始末をしてもう二度と使えない状態にする。再利用されたり、読み取られたりしないように破却する。終了処理。
unregister 登録を解除する。登記簿からの除外。イベントハンドラなどの割り当て・関連付けの解除。
unset セット済みのプロパティ、定義済みの変数をセット前、未定義の状態に戻す。あるいは参照を解除する。

検証・検査

is~ オブジェクトが特定の型、状態であるか調べて true/false を返す。isEmpty, isValid のように状態を表す語と組み合わせて使う。
has~ オブジェクトが特定のプロパティを持っているかを調べて true/false を返す。権限、属性の所有を確認する。
contains 配列に特定の値が含まれているかを調べて true/false を返す。
~exists 項目の有無を調べる。
check 広い意味での確認。validate が対象の正しさを検証するのに対し、check は対象が真か偽を調べたり、単に変数に何が入っているかを知るために使われる。
validate 正しいものであるか確かめる。決められたフォーマットや正しくルールに従っているか、要件や性能を満たしているかを調べる、妥当なら valid、過不足があれば invalid。(true/false)
verify 正しく動作しているか確かめる。入力に対し正しい出力が行われているか検証し、正しければ correct、問題があれば incorrect。(true/false)

許可・禁止

allow 許可する。対象に利用権限を与える。
disallow 許可しない。対象に利用権限を与えない。あらかじめ持っている権限を奪うわけではない。
accept 申請・要求を承認する。受け入れる。refuse, reject, deny の反意語として使える。
deny 否定・否認する。真でない。信用出来ない。与えるのを拒む。反意語は accept や admit だが、コンピュータでは allow と対にして使われることが多い。
refuse 申請・要求をはっきりと断る。辞退する。要求に応じないことを選択する。障害やトラブルにより受理できない場合など、申請先の一方的な都合で断る場合にも使える。
reject 申請・要求を退ける。承認(accept)できない不備・不足があるため受け取らない。提案を支持するに値しない。refuse より強く、明確な理由をもとにした機械的な拒否の印象がある。
ban 危険なもの・悪質なものに対する禁止。
grant 信用して許可を与える。正しいと認める。慣用的にはユーザーに権限を持たせる意味で使われる場合がほとんど。
revoke 許可を取り消す。決定を撤回し無効化する。違反による罰則として剥奪するニュアンスはない。
forbid 何らかの行いを禁ずる。人や物を対象にした否定ではなく、動作に対しての禁止。
prohibit 法に反する行いや公共の利益を損なう行為の禁止。プログラミングではあまり見かけない。

その他

try 例外の発生する可能性のある処理を試みる。失敗時には例外が投げられる。致命的なエラーとはならず、エラー発生時用の処理も用意されていることが前提。
attempt 処理を試みる。言葉の意味としては try に近いが、やや硬く、より難易度の高いものに使われることが多い。正規の手続きを取らないかぎり失敗する。攻撃を試みるという意味合いも含むため、ログイン処理に対して使われることが多い。
exec 処理、命令、短期的なスクリプト、アプリケーションの実行。=execute。
run 継続性のある処理やスクリプト、アプリケーションの開始。「お店を経営する」という場合もこちらを使う。一般的にお店は一定期間運営され続ける。
process 手順に従って処理・加工する。一連を操作を順番に実行する。ちなみに次のステップに進むことを proceed という。
bind 結びつける。仮の要素を実際の内容で置き換える。
init 初期化する。デフォルトとなる値をセットする。=initialize。
reset 既に初期化されたものに初期値をセットし直す。
open ソケットなどの通信、ストリームへの接続。
close ソケットなどの通信、ストリームの終了・切断。
start 始動。対義語は stop。止まっていたものが動き始める。
名詞として始点・文頭という意味も持つ。移動、読み取りという「動き」の開始地点。
stop 停止。start あるいは run と対にして使う。動いているものを止める。
abort 中断・遮断。動作しているものを中止する。途中から再開されることはない。異常、障害による強制終了。
pause 一時停止。動作しているものを一時的に止める。すぐに再開する可能性がある。
suspend 保留・延期。時期や条件がそろうまで処理、公開を行わない。動作中の処理を中断し、再開を延期する。
begin 始める。対義語は end。時系列的なイベント、連続性のある作業を始める。名詞としては使えない。
end 終了。begin と対にして使う。始まったイベント、連続性のある作業を終える。成功・失敗については問わない。
始点・文頭を表す名詞 start に対してはこちらで対応させる事が多い。終点・文末。
terminate 終わりにする。とくに期間などが定まっていない継続的なものに対し限界を定める。
complete 必要な要素、要件を満たす。不足を補って完全な状態にする。補完。結果的に終わることになるかもしれない。類似のものとして「立派に仕上げる」という意味の finish もあるが達成条件に人間の主観が混じる。「宿題を仕上げる」などの漠然としたものに対しては finish で良いが、「解答欄(空欄=不完全)を埋めて提出物として完全な状態にする」というのが宿題の要件定義だとすれば complete のほうがプログラムとして適切。

もちろんここに載っている単語で全てカバーできるわけでもありませんし、英語圏のネイティブですら意味を区別せず使っている場合も多くあります。
とはいえどれもよく見かける単語ばかりなので覚えておいて損はないと思います。

参考:
Oxford Learner’s Dictionaries
http://www.oxfordlearnersdictionaries.com/

Longman English Dictionary
http://www.ldoceonline.com/

BBC LEARNING ENGLISH
http://www.bbc.co.uk/worldservice/learningenglish/radio/specials/1837_aae/index.shtml

iPhone 6 と iPhone 5 との比較レビュー

ios8

先日 iPhone 6 を購入して数日使ってみたので感想を少し書いてみようと思います。
私はこれまで iPhone 4、iPhone 5 を使用していて、5s を使ったことがないので 5 と比較したレビューとなります。

iPhone 6 の最大の特徴は「大型化」です。およそアイコン1つ分縦に伸び、幅も少し大きくなっています。その影響で通常の片手持ちではホーム画面に並ぶアイコンの上二段は完全に親指が届かない状態になります。その救済として、ホームボタンを2回タップ(押しこむ必要はない)すると画面表示全体が下方にスライドして画面上部のにあるものを簡単にタップできるようにする機能があります。

とはいえひとつのボタンを押すために3回のタップ操作が必要になるのはやはり手間です。時々ならまだしも頻繁に行いたい操作ではありません。はっきり言うと iPhone 6 であろうと iPhone 6 Plus であろうと両手持ち専用機です。
縦に伸びたことで重心が上に寄り、親指を浮かすと落としそうになります。どうしても片手でホームボタンを押そうとするなら落とさないフォームに持ち直してから押すことになります。
android ユーザーで大きな端末に慣れている人なら違和感はないかもしれませんが、これまで iPhone を片手前提で使ってきた人にとっては慣れが必要になると思います。今まで親指で操作していたものを人差し指で行うようにするという変化は想像以上に大きなものです。

丸みを帯びた本体も持ちにくくする要因の一つであるように思います。
一見すると角がないほうが手にフィットすると考えてしまいますが、指の関節に引っかかることがないので油断するとストンと落としそうになります。シリコンカバーを付けて滑りにくくするのがベストのようです。

大型化に伴うもう一つの問題は持ち運び方です。iPhone 5 の時は胸ポケットにちょうど収まる長さでしたが、iPhone 6 では少し飛び出ます。具体的には背面カメラがすべて見えるくらいです。(2cm程度)
なるべくかばんに入れて持ち歩くようにしたほうが良さそうです。

iPhone 5s ですでにありましたが、5 ユーザーの私にとっては指紋認証は初めて使う機能です。
App の購入時のパスワード入力やロック解除時のパスコード入力の手間が省けて楽です。今後 Apple の決済機能 ApplePay が国内で使えるようになれば iPhone を指紋認証システム付きクレジットカードとして使えるようになるのでその期待も大きいです。
精度も高く、複数の指紋を登録できるので左右の親指と人差指を登録しておけばスムーズに使えます。

他の違いというとカメラ機能です。ハードウェアの改善もそうですが、ソフトウェアの面でも進化が見られます。オートフォーカスは賢く速くなっているし、電子手ぶれ補正も強化されているように感じます。
また、レンズそのものも良くなったので暗い場所でもノイズが出にくくなりました。
ディスプレイもコントラスト比が上がり、より深い黒を表現できるようになっています。
iPhone 6 Plus であればさらに光学手ブレ補正があるのでうらやましいですね。

バッテリーの持ちもスペック上良くなっているようです。古くなった iPhone 5 とではフェアな比較はできませんが、丸一日普段通りに使ってバッテリー残量は 70% 程度でした。

iOS 8 のほうは未だ多くのバグを抱えたままで、ミュージックアプリが正常に再生できなかったり「iPhone を探す」アプリがインストールできなかったりという問題に遭遇しました。
サードパーティ製アプリも大画面化に対応したものが少ないため引き伸ばし表示になる物がほとんどでしたが、全く使えなくなるようなアプリは今のところありませんでした。このあたりは時間とともに解決すると思います。

総評
初めてスマートフォンを持つ人や、android からの乗り換えをする人にはおすすめできると思います。iPhone 5s からの買い替えでは大きな感動を得られることはなさそうです。iPhone 5 からの場合は指紋認証にメリットを感じるか次第です。iPhone 4、4s の人は本体サイズに大きな違和感を感じると思いますが、動作は滑らかでストレスがないので買い換えるには良い頃合いだと思います。

個人的な感想としては慌てて買う程でもないというのが正直なところです。せめて ApplePay が国内で使えるようになっていれば評価も変わったと思いますが、iPhone 5 の性能には満足していたので iPhone 6 が斬新なモデルであるという印象は受けませんでした。
そう言ってしまうと悪印象に聞こえるかもしれませんが、従来モデルからの変化は小さいものの、ひとつのスマートフォンとして絶対的な評価をするならとても良いものだと思います。