SlideShare a Scribd company logo
言語は違うけどもインスパイアされて
作られたとあるライブラリ
〜 PaperclipとLaravel-stapler 〜
自己紹介
✦
今までの仕事履歴(本業)
石川県金沢市生まれ
本業はサーバーサイドのプログラマ ※Rails&PHP使い
26歳〜31歳:Ruby / PHPのプログラマ
23歳〜25歳:Webデザイナー兼ディレクター
最近はiOSアプリ開発にも絶賛浮気中!
趣味:シルバーアクセサリー集め・スイーツ作り・開発
女子向け・グルメ・エンタメ関連のお仕事が多い&最近はRailsやLaravelも
Qiita : http://qiita.com/fumiyasac@github
Github : https://github.com/fumiyasac
✦ 酒井文也(さかい ふみや)
東京(大塚)住まいの31歳
こんな格好してますが…
遊び人ではなくエンジニアです
お酒好きそうと思われますが…
ビールが全く飲めません
キャリアのほうは…
結構ブランクあったりとベッコベコです
※心の叫び❶
※心の叫び❷
※心の叫び❸
これまでつくったもの(2015年)
① 簡易家計簿アプリ「Coffre」
② ゲームアプリ「10秒虫食い算」
・カレンダーを自作しています
・シンプルなお小遣い帳感覚で支出管理できます
・全問正解者ほとんどいません…
・不定期ですがコラムも書いています
・サーバーサイドはRuby on Railsを使用
http://www.coffre.me/
・デザインにもこだわってみました(特にグラフ)
・実はちょっとバグがあります。
・問題は今後追加予定(現在110問収録)
個人的にはなりますが、他にもアプリ・Webサービスなど開発中です(2016年も宜しくお願いします)
・サイト等は次回のアップデートで公開予定
http://blog.just1factory.net/services/284
・若干の中毒性を含みます
ざっくり2つのライブラリについて復習
�(この2つを実装してみて感じたこと)
モデルの書き方や画像情報カラムのもち方・View側での実装方法ともに非常によく似ていたので驚いた!
✦ PaperclipとLaravel-staplerに関しての紹介
① Paperclip(Ruby on Rails ※Ruby)
・ファイルアップロード機能を追加するGem
② Laravel-stapler(laravel ※PHP)
・同様の機能を持つGemにCarrierWaveがある(PaperClipと並ぶ有名Gem)
・作者が「inspired by Paperclip」と認めている(前身はstaplerという名前)
・まだまだ日本語のまとめ資料が少ないがドキュメント自体は充実
・herokuの公式ページにも英語で解説がある
・Amazon S3との連携も結構しやすい&解説しているブログも多い
・(公式リポジトリ)https://github.com/thoughtbot/paperclip
・書き方のノリはPaperClipと非常によく似ている(Amazon S3との連携も可)
・ちなみにstaplerは日本語では「ホッチキス」のこと
・(公式リポジトリ) https://github.com/CodeSleeve/laravel-stapler
調べた経緯とか様々な事情
�(言語をまたいだ壮大な浮気癖の結果)
結果的には色々調べることになったので勉強にはなった!結果オーライ!だけども今も迷っている現実…
✦ 2014年にLaravelを個人的に少し触った&Railsの現場が動機
2014年のAdventCalendarでも少しだけ触れてみたことから始まった…
新しいフレームワークに挑戦しようと思いlaravalを触る
<変遷の歴史>
・2014年7月(CakePHPでの現場)
・2014年10月〜2015年4月(Ruby on Railsでの現場)
家計簿アプリ「Coffre」の作成でサーバーサイドをRailsにする
(この時にPaperclipを使った)
・2015年5月〜現在まで(PHP / Rubyでの現場)
2015/03/11にCoffre無事にリリース!
LaravelのAdventCalendarを初めて書く
SwiftとLaravel5でAdventCalendarを書く
Qiitaも書き始める(ほとんどSwiftとLaravel ※Railsも少し)
何が本職なのか自分でもわからなくなる暗黒時期が到来する�←�イマココ
RailsもLaravelも両方使って色々しよ!
これは面白そうだ!と思ったので調査!
Qiitaにも書いてまとめてみたりした
(過去にも記事をまとめてはみたけれどAWS側の部分は未検証)
今回は2014年のAdventCalendarでは書けずじまいだった部分も触れて見ていきたいと思います。
✦ 実際のアプリケーションを作る際の手順や実装に関しての記事
① Paperclip(Ruby on Rails ※Ruby)
・PaperclipとAWS S3を用いた画像アップロード機能作成手順まとめ
② Laravel-stapler(laravel ※PHP)
・Laravel5.1で作るファイルアップロードライブラリLaravel-Staplerの利用方法&AWS S3との連携Tips
(Qiita記事URL)http://qiita.com/fumiyasac@github/items/a73d3598d75e749ba443
(Qiita記事URL)http://qiita.com/fumiyasac@github/items/320f80dcab492b3e31ab
※Rails4.1 & macportsを使っているのでもしかしたら参考にならないかも…
※LTSの5.1系を用いて解説をしています。
・AWS S3側の設定はそれぞれ同じ設定を使っています。
・AWSとの繋ぎこみは aws-sdk (Rails)・aws-sdk-php ※version2 (Laravel) を使います。
http://blog.just1factory.net/programming/201
(過去記事)画像アップロードのお話と僕が作っているもの [for Laravel Advent Calendar 2014]
実際に似ている部分と違う部分①
�(LaravelのMVCのファイル置き場)
Model → app/配下 , View → resources/views/配下 , Controller → app/Http/Controllers/配下
✦ app/以下のフレームワークの構成はそもそも違っている
Ruby on Rails (Ver4.1) Laravel (Ver5.1 LTS)
MVC感がある MVC感がなさそうに思うかも
注意)
Repositoriesは自前で
追加したものです。。
実際に似ている部分と違う部分②
(見比べをしてみると動かすのに必要な追加カラムの規則は似ている)
フレームワークの構成は違うがさすがはインスパイアされてつくられているのでDBまわりはすごく近い!
✦ マイグレーション後のカラムの持ち方は非常に似ている
Ruby on Rails (Ver4.1) Laravel (Ver5.1 LTS)
db/migrate/(timestamp)_add_attachment_image_newinfo.rb
class AddAttachmentImageToNewinfos < ActiveRecord::Migration
def self.up
change_table :newinfos do |t|
t.has_attached_file :image
end
end
def self.down
drop_attached_file :newinfos, :image
end
end
database/migrations/(timestamp)_create_newinfos_table.php
<?php
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class CreateNewinfosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//newinfosテーブルを生成する
Schema::create('newinfos', function(Blueprint $table)
{
… (スキーマの定義は省略)
//Add columns for Laravel Stapler
$table->string('image_file_name', 256);
$table->string('image_content_type', 256);
$table->integer('image_file_size');
$table->timestamp('image_updated_at');
… (以下略)
newinfosテーブルにカラムをあとで追加するマイグレーション
カラム追加用のマイグレーションを
あとで追加してもOKです。
"image_file_name" varchar型,
"image_content_type" varchar型
"image_file_size" int型
"image_updated_at" datetime型
#ファイル名
#ファイルの種類
#ファイルサイズ
#アップロード日
<どちらにも追加が必要なカラム名とデータ型>
実際に似ている部分と違う部分③
✦ モデルの設定部分は非常に良く似ている
�(パスの書き方や画像サイズの部分)
見比べをしてみると「意外に似ているぞ?」と感じる部分が結構ある&Paperclipの流れにも沿ってる感。
Ruby on Rails (Ver4.1) Laravel (Ver5.1 LTS)
app/models/newinfo.rb
class Newinfo < ActiveRecord::Base
… (色々とごにょごにょする部分は省略)
#添付ファイルアップロードに関する設定
has_attached_file :image,
:styles => {
:thumb => "100x100#",
:medium => "200x200#",
:large => "640x320#"
},
:storage => :s3,
:s3_permissions => :private,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => ":class/:attachment/:id/:style.:extension"
end
app/Newinfo.php
(クラスへの追記部分はQiitaを参考にしてください)
protected $fillable = [‘カラム名色々...’, ‘image’];
//コンストラクタ
public function __construct(array $attributes = array()) {
//画像の投稿設定
$this->hasAttachedFile('image', [
//画像の切り取るサイズのパターン
'styles' => [
'large' => '640x480#',
'medium' => '300x200#',
'thumb' => '100x75#'
],
//AWS S3内での画像の「格納場所」とURLの設定
'url' => '/uploads/newinfos/:id/:style/:filename',
'path' => '/uploads/topics/:id/:style/:filename',
//設定ファイル移動場所:config/laravel-stapler/s3.php
'storage' => 's3'
]);
parent::__construct($attributes);
}
サイズの設定の参考
http://blog.noriaki.me/2014-01-02-rails4-
paperclip-imagemagick-thumbnail-styles
実際に似ている部分と違う部分④
✦ AWS S3に関する設定は違う部分がある
�(AWSの設定に関して)
かなり危険?な部分を扱うのでGithubなどのサービスに入れておく際には十分にご注意をお願いします。
② app/config/内にs3.ymlを追加
bucket: 自分のつくったバケット名
access_key_id: アクセスキーID
secret_access_key: シークレットキー
s3_host_name: ホスト名
③ app/config/initializers内にpaperclip.rbを追加
Paperclip::Attachment.default_options[:url] = ‘xxx'
Paperclip::Attachment.default_options[:path] = 'xxx'
Paperclip::Attachment.default_options[:s3_host_name] = 'xxx'
① Gemfileに下記を追加してbundle installをする
gem "paperclip", '~> 4.3'
gem 'aws-sdk', '< 2.0’
$ bundle install
Ruby on Rails (Ver4.1) Laravel (Ver5.1 LTS)
下記Gemfileまわりの設定手順 Composer.jsonとconfigファイルの設定手順
② config/laravel-stapler/s3.phpに設定を追記する
$ php artisan vendor:publish
$ vim config/laravel-stapler/s3.php
・S3 Client Config
・S3 Object Config
・S3 Path
のそれぞれの値を設定する
※aws-sdk-phpの設定値に関しては下記を参照してください。
http://docs.aws.amazon.com/aws-sdk-php/v2/api/index.html
"codesleeve/laravel-stapler": "1.0.*",
"aws/aws-sdk-php": “2.4.*"
$ composer update
① composer.jsonに下記を追加してupdateをする
Ruby on RailsでもLaravelでもサービスを作って公開までこぎつけたい!と思いますーm(_ _)m
✦
Laravel-staplerはPaperClipにインスパイアされているので言語は違えども思想
が非常に良く似ている
セッションのまとめ
✦
AWS S3側の設定方法は試して見ると大体同じでいけた ※自信ないけど。。
✦
Laravel-staplerもPaperClipもGithubでの解説やドキュメントはかなり多くあるの
で実装もしやすい ※Laravel-staplerに関しては日本語は少ない
✦
モデルの設定やファイル情報に関する追加カラムの持ち方・View部分の実装方法
についてはインスパイアされた片鱗を感じることができる
ご静聴ありがとうございました!
✦
aws-sdk / aws-sdk-phpを使ってAWS S3へアップロードする
✦
仕様にもよるでしょうけど、どちらも結構導入しやすい&使いやすい!

More Related Content

What's hot

デザイナーだった記憶を忘れないために自分なりに気をつけていること
デザイナーだった記憶を忘れないために自分なりに気をつけていることデザイナーだった記憶を忘れないために自分なりに気をつけていること
デザイナーだった記憶を忘れないために自分なりに気をつけていること
Fumiya Sakai
 
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプルカスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
Fumiya Sakai
 
Rails5とAPIモードについての解説
Rails5とAPIモードについての解説Rails5とAPIモードについての解説
Rails5とAPIモードについての解説
Fumiya Sakai
 
あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)
Fumiya Sakai
 
LaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtipsLaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtips
Fumiya Sakai
 
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイントカスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
Fumiya Sakai
 
日本の祝祭日を計算してカレンダ-に表示するアプリサンプル
日本の祝祭日を計算してカレンダ-に表示するアプリサンプル日本の祝祭日を計算してカレンダ-に表示するアプリサンプル
日本の祝祭日を計算してカレンダ-に表示するアプリサンプル
Fumiya Sakai
 
自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見
Fumiya Sakai
 
RxSwiftでの実装練習の記録ノートとはじめの一歩
RxSwiftでの実装練習の記録ノートとはじめの一歩RxSwiftでの実装練習の記録ノートとはじめの一歩
RxSwiftでの実装練習の記録ノートとはじめの一歩
Fumiya Sakai
 
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
Fumiya Sakai
 
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみたNativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
Fumiya Sakai
 
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
Fumiya Sakai
 
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Firebaseでのファイルアップロード処理と便利ライブラリの紹介Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Fumiya Sakai
 
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
Fumiya Sakai
 
Parse.comを使ってみた感想とまとめ
Parse.comを使ってみた感想とまとめParse.comを使ってみた感想とまとめ
Parse.comを使ってみた感想とまとめ
Fumiya Sakai
 
Core dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめCore dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめ
Fumiya Sakai
 
デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3
Fumiya Sakai
 
Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)
Fumiya Sakai
 
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Fumiya Sakai
 
Apple watch対応アプリのポイントや基本実装・連携tips
Apple watch対応アプリのポイントや基本実装・連携tipsApple watch対応アプリのポイントや基本実装・連携tips
Apple watch対応アプリのポイントや基本実装・連携tips
Fumiya Sakai
 

What's hot (20)

デザイナーだった記憶を忘れないために自分なりに気をつけていること
デザイナーだった記憶を忘れないために自分なりに気をつけていることデザイナーだった記憶を忘れないために自分なりに気をつけていること
デザイナーだった記憶を忘れないために自分なりに気をつけていること
 
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプルカスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
カスタムトランジションやアニメーションを活用した「写真を生かすUI」のサンプル
 
Rails5とAPIモードについての解説
Rails5とAPIモードについての解説Rails5とAPIモードについての解説
Rails5とAPIモードについての解説
 
あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)あのアプリの動きをUIKitのみでDIYしてみる(part2)
あのアプリの動きをUIKitのみでDIYしてみる(part2)
 
LaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtipsLaravelでDBを使用しないbasic認証を簡単につくるtips
LaravelでDBを使用しないbasic認証を簡単につくるtips
 
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイントカスタムトランジションやジェスチャーを生かしたUIの実装ポイント
カスタムトランジションやジェスチャーを生かしたUIの実装ポイント
 
日本の祝祭日を計算してカレンダ-に表示するアプリサンプル
日本の祝祭日を計算してカレンダ-に表示するアプリサンプル日本の祝祭日を計算してカレンダ-に表示するアプリサンプル
日本の祝祭日を計算してカレンダ-に表示するアプリサンプル
 
自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見
 
RxSwiftでの実装練習の記録ノートとはじめの一歩
RxSwiftでの実装練習の記録ノートとはじめの一歩RxSwiftでの実装練習の記録ノートとはじめの一歩
RxSwiftでの実装練習の記録ノートとはじめの一歩
 
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
指の動きや遷移時等のアニメーションを生かしたUIのサンプル解説
 
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみたNativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
NativeBaseをはじめとするUIに関する ライブラリを使ったサンプルを作ってみた
 
Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録Ruby on railsでlinebotを試した記録
Ruby on railsでlinebotを試した記録
 
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Firebaseでのファイルアップロード処理と便利ライブラリの紹介Firebaseでのファイルアップロード処理と便利ライブラリの紹介
Firebaseでのファイルアップロード処理と便利ライブラリの紹介
 
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
mBaaSの基本的な扱い方の事始め(parse.comとNCMBの使い方比べ)
 
Parse.comを使ってみた感想とまとめ
Parse.comを使ってみた感想とまとめParse.comを使ってみた感想とまとめ
Parse.comを使ってみた感想とまとめ
 
Core dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめCore dataと比較してrealmを使ったまとめ
Core dataと比較してrealmを使ったまとめ
 
デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3デザインにもこだわったUiの事始め3
デザインにもこだわったUiの事始め3
 
Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)Railsの現場に入る前のお話(勉強法)
Railsの現場に入る前のお話(勉強法)
 
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
 
Apple watch対応アプリのポイントや基本実装・連携tips
Apple watch対応アプリのポイントや基本実装・連携tipsApple watch対応アプリのポイントや基本実装・連携tips
Apple watch対応アプリのポイントや基本実装・連携tips
 

Similar to 言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)

ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用
Fumiya Sakai
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
Hiroshi SHIBATA
 
Optional型の簡単な説明
Optional型の簡単な説明Optional型の簡単な説明
Optional型の簡単な説明
Fumiya Sakai
 
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまでデザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
Hideharu Okuma
 
Swift Scriptingのすゝめ
Swift ScriptingのすゝめSwift Scriptingのすゝめ
Swift Scriptingのすゝめ
Yuichiro Takahashi
 
デザインにもこだわったUIの事始め (Episode1)
デザインにもこだわったUIの事始め (Episode1)デザインにもこだわったUIの事始め (Episode1)
デザインにもこだわったUIの事始め (Episode1)
Fumiya Sakai
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方
Satomi Tsujita
 
テックリンク資料20170529
テックリンク資料20170529テックリンク資料20170529
テックリンク資料20170529
yoshito funayose
 
よちよちと歩んだ2014年
よちよちと歩んだ2014年よちよちと歩んだ2014年
よちよちと歩んだ2014年
pupupopo88
 
20191030 RPA makes us Anything.
20191030 RPA makes us Anything.20191030 RPA makes us Anything.
20191030 RPA makes us Anything.
riscurred
 

Similar to 言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler) (10)

ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用ハンドメイドカレンダー第15回potatotips用
ハンドメイドカレンダー第15回potatotips用
 
Ruby with My Life
Ruby with My LifeRuby with My Life
Ruby with My Life
 
Optional型の簡単な説明
Optional型の簡単な説明Optional型の簡単な説明
Optional型の簡単な説明
 
デザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまでデザイナさんにGithubでpr投げてもらうまで
デザイナさんにGithubでpr投げてもらうまで
 
Swift Scriptingのすゝめ
Swift ScriptingのすゝめSwift Scriptingのすゝめ
Swift Scriptingのすゝめ
 
デザインにもこだわったUIの事始め (Episode1)
デザインにもこだわったUIの事始め (Episode1)デザインにもこだわったUIの事始め (Episode1)
デザインにもこだわったUIの事始め (Episode1)
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方
 
テックリンク資料20170529
テックリンク資料20170529テックリンク資料20170529
テックリンク資料20170529
 
よちよちと歩んだ2014年
よちよちと歩んだ2014年よちよちと歩んだ2014年
よちよちと歩んだ2014年
 
20191030 RPA makes us Anything.
20191030 RPA makes us Anything.20191030 RPA makes us Anything.
20191030 RPA makes us Anything.
 

More from Fumiya Sakai

RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
Fumiya Sakai
 
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒントiOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
Fumiya Sakai
 
少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために
Fumiya Sakai
 
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwiftMeasures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Fumiya Sakai
 
2022年の抱負とここ数年続けてきたインプット
2022年の抱負とここ数年続けてきたインプット2022年の抱負とここ数年続けてきたインプット
2022年の抱負とここ数年続けてきたインプット
Fumiya Sakai
 
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
Fumiya Sakai
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
Fumiya Sakai
 
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
Fumiya Sakai
 
最近の業務やAndroid関連のインプットと振り返り
最近の業務やAndroid関連のインプットと振り返り最近の業務やAndroid関連のインプットと振り返り
最近の業務やAndroid関連のインプットと振り返り
Fumiya Sakai
 
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
Fumiya Sakai
 
少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発
Fumiya Sakai
 
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察するUIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
Fumiya Sakai
 
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞくレイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
Fumiya Sakai
 
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分についてiOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
Fumiya Sakai
 
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
Fumiya Sakai
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
Fumiya Sakai
 
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
Fumiya Sakai
 
アプリ開発におけるテキスト装飾のアイデア集
アプリ開発におけるテキスト装飾のアイデア集アプリ開発におけるテキスト装飾のアイデア集
アプリ開発におけるテキスト装飾のアイデア集
Fumiya Sakai
 
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
Fumiya Sakai
 
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
Fumiya Sakai
 

More from Fumiya Sakai (20)

RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
 
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒントiOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
 
少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために少しずつ手厚くして不具合や仕様漏れを防ぐために
少しずつ手厚くして不具合や仕様漏れを防ぐために
 
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwiftMeasures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
Measures for Growth with Firebase Remote Config & Unit Testing Using RxSwift
 
2022年の抱負とここ数年続けてきたインプット
2022年の抱負とここ数年続けてきたインプット2022年の抱負とここ数年続けてきたインプット
2022年の抱負とここ数年続けてきたインプット
 
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
既存プロジェクトで使っていたDIをお引っ越し&DIYすることになった
 
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
動画プレイヤーアプリの開発を通じて学んだ機能を実現するための要点解説
 
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
UI実装に関するセッションを 簡単ながら振り返ってみる(仮)
 
最近の業務やAndroid関連のインプットと振り返り
最近の業務やAndroid関連のインプットと振り返り最近の業務やAndroid関連のインプットと振り返り
最近の業務やAndroid関連のインプットと振り返り
 
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
少しずつキャッチアップしていくAndroidアプリ開発の補足と振り返り
 
少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発少しずつキャッチアップしていくAndroidアプリ開発
少しずつキャッチアップしていくAndroidアプリ開発
 
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察するUIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
UIKitやSwiftUIで表現や動きが特徴的なUI実装事例を考察する
 
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞくレイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
 
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分についてiOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
 
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
試して感覚を掴んでみるUICollectionViewCompositionalLayout & Combine
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
 
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
 
アプリ開発におけるテキスト装飾のアイデア集
アプリ開発におけるテキスト装飾のアイデア集アプリ開発におけるテキスト装飾のアイデア集
アプリ開発におけるテキスト装飾のアイデア集
 
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
ライブラリやView構造を有効活用して iOSアプリのUIをオシャレにするワザ紹介
 
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
部品に切り分けて考えるView構造とライブラリを上手に活用したUI実装
 

Recently uploaded

遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 

Recently uploaded (10)

遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 

言語は違うけどもインスパイアされて作られたとあるライブラリ(PaperclipとLaravel-stapler)