Submit Search
Upload
GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
•
56 likes
•
17,366 views
Satoshi Asano
Follow
次の週末はGitHub活動しよう
Read less
Read more
Technology
Report
Share
Report
Share
1 of 44
Download now
Download to read offline
Recommended
GitHub Handson
GitHub Handson
Yoichiro Shimizu
Github講座#1
Github講座#1
Masaki Kobayashi
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書
相皓 卞
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
Tomohiko Himura
201806 hugo で静的サイト作ってみた
201806 hugo で静的サイト作ってみた
junichim
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
ichikaway
「地方零細スタートアップの失敗ノウハウ」in iOSスタートアップ勉強会 #3
「地方零細スタートアップの失敗ノウハウ」in iOSスタートアップ勉強会 #3
Yukidama
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
Brian Gesiak
Recommended
GitHub Handson
GitHub Handson
Yoichiro Shimizu
Github講座#1
Github講座#1
Masaki Kobayashi
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書
相皓 卞
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
Tomohiko Himura
201806 hugo で静的サイト作ってみた
201806 hugo で静的サイト作ってみた
junichim
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
デザイナー、フロントエンジニア向けgithub勉強会ワークショップ資料
ichikaway
「地方零細スタートアップの失敗ノウハウ」in iOSスタートアップ勉強会 #3
「地方零細スタートアップの失敗ノウハウ」in iOSスタートアップ勉強会 #3
Yukidama
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
Brian Gesiak
GitHubのIssue作成について
GitHubのIssue作成について
Masashi Sato
Git学ぼうぜの会 ハンズオン資料 - LOCAL学生部 GWイベント
Git学ぼうぜの会 ハンズオン資料 - LOCAL学生部 GWイベント
Takuya Mukohira
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
VOYAGE GROUP
Yapc2012資料
Yapc2012資料
matsuo kenji
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Git_GiHub講習会.pdf
Git_GiHub講習会.pdf
Takara Ishimoto
Hiroshima.rb on github
Hiroshima.rb on github
Tomohiko Himura
「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう
中條 剛
オープンセミナー2014@広島 懇親会LT
オープンセミナー2014@広島 懇親会LT
Kazuya Matsubara
GitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しよう
Shinya Nakajima
プログラミング支援AI GitHub Copilot すごいの話
プログラミング支援AI GitHub Copilot すごいの話
Mitsushige Ishiguro
Gitを使いこなしてみよう!
Gitを使いこなしてみよう!
Hiroshi Maekawa
SNS 「github」で遊ぼう
SNS 「github」で遊ぼう
Tomohiko Himura
APL EPUB WG報告
APL EPUB WG報告
Japan Electronic Publishing Association
Pythonを始めよう
Pythonを始めよう
shouta yoshikai
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
Emma Haruka Iwao
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Katz Ueno
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Kazumi IWANAGA
LINE BOT AWARDS ハンズオン
LINE BOT AWARDS ハンズオン
Masatoshi Hiraoka
Katib
Katib
Yuji Oshima
I phoneアプリの通信エラー処理
I phoneアプリの通信エラー処理
Satoshi Asano
ARCでめちゃモテiOSプログラマー
ARCでめちゃモテiOSプログラマー
Satoshi Asano
More Related Content
Similar to GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
GitHubのIssue作成について
GitHubのIssue作成について
Masashi Sato
Git学ぼうぜの会 ハンズオン資料 - LOCAL学生部 GWイベント
Git学ぼうぜの会 ハンズオン資料 - LOCAL学生部 GWイベント
Takuya Mukohira
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
VOYAGE GROUP
Yapc2012資料
Yapc2012資料
matsuo kenji
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Git_GiHub講習会.pdf
Git_GiHub講習会.pdf
Takara Ishimoto
Hiroshima.rb on github
Hiroshima.rb on github
Tomohiko Himura
「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう
中條 剛
オープンセミナー2014@広島 懇親会LT
オープンセミナー2014@広島 懇親会LT
Kazuya Matsubara
GitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しよう
Shinya Nakajima
プログラミング支援AI GitHub Copilot すごいの話
プログラミング支援AI GitHub Copilot すごいの話
Mitsushige Ishiguro
Gitを使いこなしてみよう!
Gitを使いこなしてみよう!
Hiroshi Maekawa
SNS 「github」で遊ぼう
SNS 「github」で遊ぼう
Tomohiko Himura
APL EPUB WG報告
APL EPUB WG報告
Japan Electronic Publishing Association
Pythonを始めよう
Pythonを始めよう
shouta yoshikai
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
Emma Haruka Iwao
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Katz Ueno
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Kazumi IWANAGA
LINE BOT AWARDS ハンズオン
LINE BOT AWARDS ハンズオン
Masatoshi Hiraoka
Katib
Katib
Yuji Oshima
Similar to GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
(20)
GitHubのIssue作成について
GitHubのIssue作成について
Git学ぼうぜの会 ハンズオン資料 - LOCAL学生部 GWイベント
Git学ぼうぜの会 ハンズオン資料 - LOCAL学生部 GWイベント
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
Yapc2012資料
Yapc2012資料
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
Git_GiHub講習会.pdf
Git_GiHub講習会.pdf
Hiroshima.rb on github
Hiroshima.rb on github
「CodeYourRuby」で オープンなコードレビューを体験しよう
「CodeYourRuby」で オープンなコードレビューを体験しよう
オープンセミナー2014@広島 懇親会LT
オープンセミナー2014@広島 懇親会LT
GitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しよう
プログラミング支援AI GitHub Copilot すごいの話
プログラミング支援AI GitHub Copilot すごいの話
Gitを使いこなしてみよう!
Gitを使いこなしてみよう!
SNS 「github」で遊ぼう
SNS 「github」で遊ぼう
APL EPUB WG報告
APL EPUB WG報告
Pythonを始めよう
Pythonを始めよう
Git for Begineers GitHub ハンズオン
Git for Begineers GitHub ハンズオン
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
LINE BOT AWARDS ハンズオン
LINE BOT AWARDS ハンズオン
Katib
Katib
More from Satoshi Asano
I phoneアプリの通信エラー処理
I phoneアプリの通信エラー処理
Satoshi Asano
ARCでめちゃモテiOSプログラマー
ARCでめちゃモテiOSプログラマー
Satoshi Asano
Webエンジニアから見たiOS5
Webエンジニアから見たiOS5
Satoshi Asano
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
Satoshi Asano
Google Analytics & iPhone
Google Analytics & iPhone
Satoshi Asano
iPhoneアプリ開発講座Web連携アプリ編
iPhoneアプリ開発講座Web連携アプリ編
Satoshi Asano
Asihttp requestについて
Asihttp requestについて
Satoshi Asano
バックグラウンド位置取得について
バックグラウンド位置取得について
Satoshi Asano
iPhoneアプリ開発講座入門編
iPhoneアプリ開発講座入門編
Satoshi Asano
集合知プログラミング第2章復習
集合知プログラミング第2章復習
Satoshi Asano
Algorithm Introduction #18 B-Tree
Algorithm Introduction #18 B-Tree
Satoshi Asano
More from Satoshi Asano
(11)
I phoneアプリの通信エラー処理
I phoneアプリの通信エラー処理
ARCでめちゃモテiOSプログラマー
ARCでめちゃモテiOSプログラマー
Webエンジニアから見たiOS5
Webエンジニアから見たiOS5
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
iPhoneアプリとAndroidアプリを比較する〜はてなブックマーク開発の現場から〜
Google Analytics & iPhone
Google Analytics & iPhone
iPhoneアプリ開発講座Web連携アプリ編
iPhoneアプリ開発講座Web連携アプリ編
Asihttp requestについて
Asihttp requestについて
バックグラウンド位置取得について
バックグラウンド位置取得について
iPhoneアプリ開発講座入門編
iPhoneアプリ開発講座入門編
集合知プログラミング第2章復習
集合知プログラミング第2章復習
Algorithm Introduction #18 B-Tree
Algorithm Introduction #18 B-Tree
Recently uploaded
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Recently uploaded
(10)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
GitHub活動を通して個人のキャリアを積みつつ仕事の成果を出す方法
1.
GitHub活動を通して 個人のキャリアを積みつつ 仕事の成果を出す方法 https://github.com/ninjinkun/
2.
はじめに GitHub活動とは • GitHubで行うオープンソース活動 • 自分のプロジェクトの公開 • 他人のプロジェクトへの貢献
3.
はじめに なぜiOS界隈でGitHubが盛り上がっているのか • AppleのNDA緩和 (2008/10) • それまではSDKについて話すこと自体が難しかった • ASIHTTPRequest, AFNetworkingなどの成功事例 • CocoaPodsの普及
(2011 ) • GitHubがセントラルリポジトリ
4.
はじめに 個人的なGitHub活動への道のり • PsycsさんのImageStoreでiOSの勉強 (2008) • ASIHTTPRequestにお世話になる(2009) • kishikawaさん見てすげーと思う (2011) • ishkawaさん見てすげーと思う
(2012) • 自分のOSSモジュール公開 (2013)
5.
はじめに アジェンダ • 事例紹介: NJKWebViewProgress • 事例紹介: NJKScrollFullScreen • いつモジュールを作るのか • モジュールを使ってもらう方法 • 事例紹介:
はてなブックマークiOS SDK
6.
事例紹介 NJKWebViewProgress
7.
NJKWebViewProgress • UIWebViewのロードプログレスを 取得する • 2013年4月公開
8.
NJKWebViewProgress DEMO
9.
NJKWebViewProgress 実装 • UIWebViewDelegateからロードが完了したリソース の数を数える - (void)webViewDidStartLoad:(UIWebView *)webView { _loadingCount++; _maxLoadCount
= fmax(_maxLoadCount, _loadingCount); ! [self startProgress]; } ! - (void)webViewDidFinishLoad:(UIWebView *)webView { _loadingCount--; [self incrementProgress]; }
10.
NJKWebViewProgress 実装 • JavaScriptでページロードの完了をフック • document.readyState • loading => 未表示 • interactive =>
表示済、DOMアクセス化 • complete => 完了
11.
NJKWebViewProgress 実装 • UIWebViewとViewControllerとの間に Proxyとして挟む UIWebView .progressDelegate NJKWebView Progress .delegate .webViewProxy Delegate ViewController
12.
NJKWebViewProgress どうやって作ったか • 1Passwordが実現していた • CordovaのJavaScriptを読んでいてひらめいた • 暇な週末になんとなく実装、プロト実装半日、綺麗に するのに1日 • 同僚に見てもらって.podspec追加してpush
13.
NJKWebViewProgress 作った結果 • Yahoo! Japan, Facebook
Messengerで採用 • GitHub☆500 • 仕事でも使用 • 転職先でも(!)
14.
事例紹介 NJKScrollFullScreen
15.
NJKScrollFullScreen • Facebookアプリライクな フルスクリーン表示ができる • 2014年1月公開
16.
NJKScrollFullScreen DEMO
17.
NJKScrollFullScreen 実装 • NJKScrollFullScreen • • • UIScrollViewDelegateをフックしてバーを隠す タイミングを教えてくれる proxyとして動く UIViewController+ NJKFullScreenSupport • UINavigationBar, UIToolbarなどを動かす UIまわりの機能を提供するモジュール
18.
NJKScrollFullScreen 実装 UINavigationBarが隠れる UIViewController+ NJKFullScreenSupport UIScrollViewDelegate, UITableViewDelegateをproxy 発火 NJKScrollFullScreen スクロール操作 UIScrollViewDelegate
19.
NJKScrollFullScreen どうやって作ったか • 前職で必要になったが、実装が難しくて断念 • • コードは新しく書いた 当初動きのモジュールの方は作る予定がなかった • DemoApp作ってたらできてた
20.
NJKScrollFullScreen どうやって作ったか • 正月休みに実装 • ゼルダをクリア • 実装2日、READMEとブログ書き1日
21.
NJKScrollFullScreen 作った結果 • GitHub☆380 • Issue, PullRequestぼちぼち来てる • まだ仕事では未投入
22.
GitHubチャンス!
23.
GitHubチャンス! いつモジュールを作るのか • ググっても自分の欲しいライブラリがない • Github, CocoaControlsで見つかったライブラリも要 件に合わなかった • 気づけば毎回同じ処理を書いている
24.
GitHubチャンス! 作るのにおすすめのモジュール • 手離れがよいもの • UIがないモジュール • UIが絡むとOSのアップデートに追従しなければい けなくなる… • とは言っても欲しいのはだいたいUI絡み
25.
GitHubチャンス! 作るのにおすすめのモジュール • Web連携アプリに必要なパーツはまだ足りてない • 例えば… • • • URLを良い感じに使う 決定版NSDateFormatter 他の言語、プラットフォームにあってiOSにないもの • この前見つけた JLRoutes
26.
モジュールを 使ってもらう方法
27.
モジュールを使ってもらう方法 • 試しやすくする • 組み込みやすくする • 品質を高める • 表現を工夫する • 広報
28.
モジュールを使ってもらう方法 試しやすくする • DemoAppをつける • 依存ライブラリはPodfile, submodulesで一発インス トールできるようにしておく
29.
モジュールを使ってもらう方法 組み込みやすくする • 例えば…継承前提では作らないとか • ObjCは多重継承ができない • • UIViewControllerのサブクラスだと使いづらい 疎な設計はカスタマイズ性を高める • オプションを増やすよりハックしやすい設計を工夫
30.
モジュールを使ってもらう方法 品質を高める • テストを充実させる • CIを導入する • このあたりはishkawaさんが話してくれるはず!
31.
モジュールを使ってもらう方法 表現を工夫する • GitHubのDescriptionと README.mdをがんばる • • ストレートに伝わる文言 UI系ライブラリならGIFを使う • Gyazo gifおすすめ
32.
モジュールを使ってもらう方法 広報 • CocoaPodsにPullRequest • ウォッチャーが居るので、広まる可能性が高い
33.
モジュールを使ってもらう方法 広報 • ブログ書く & Twitterで周知 • @iphone_dev_jpとか • 読みやすい日本語の解説があると人が集まる
34.
事例紹介 はてなブックマーク iOS SDK
35.
はてなブックマークiOS SDK • オープンソースプロジェクトを 仕事としてやった例 • はてブの機能をiOSに組み込む
36.
はてなブックマークiOS SDK DEMO
37.
はてなブックマークiOS SDK どうやって作ったか • シード開発者を募集 • GitHub上でシード開発者向けに クローズド公開 • Issue, PullRequest
多数 • テスト+CI整備 • 1ヶ月後に正式公開
38.
はてなブックマークiOS SDK どうやってOSSを仕事にしたか • SDK構想を前からしつこく話していた • Pocket SDK等を研究、出すならOSS • GitHubで公開を提案 • 個人活動でGithubでの振る舞いが多少分かっていた ので話を進めやすかった
39.
はてなブックマークiOS SDK どうやってOSSを仕事にしたか • 社内にコードレビューできる体制が整った • 最初のバージョンの品質担保 • OSSプロジェクトとして参加したいか見てもらう • 一人ではできなかった
40.
はてなブックマークiOS SDK 作った結果 • 様々なアプリで採用 • アクティブユーザー数への好影響 • 退職後もメンテナに • SDKを作るならGitHubでやるのがおすすめ!
41.
おわりに
42.
おわりに 大事なことはみんなPerlに教わった • OSSハッカーのロールモデルは既にある • CPAN • Perlライブラリのリポジトリ • 企業の垣根を越えてCPANにコミットする文化がある • 転職しても前職で作ったモジュールのメンテを続けて いたりする
43.
おわりに まとめ • OSSモジュールは個人と仕事の両方に良い影響がある • • • 業務効率化、見えやすい実績、承認 GitHubは履歴書 アプリ作るより簡単でメンテコスト低い
44.
次の週末は GitHub活動しましょう!
Download now