筋トレログ2019 (2/2〜2/8)
2019年2月2日(土)〜2月8日(金)の筋トレログを報告します。
日 | 場所 | トレーニング内容 |
---|---|---|
2019年2月2日(土) | ジム | ベンチプレス:10kg×4セット、20kg×1セット スミスマシン(インクライン):0kg×3セット ダンベルカール:3.0kg×3セット ラットプルダウン:10kg×2セット、15kg×2セット ディップス:3セット サイドレイズ:2.0kg×1セット、3.0kg×2セット |
2019年2月3日(日) | 自宅 | リバースクランチ:3セット 逆プランク:3セット |
2019年2月4日(月) | - | 休養 |
2019年2月5日(火) | 自宅 | 腕立て伏せ:5セット スクワット:3セット |
2019年2月6日(水) | ジム | ダンベルカール:3.0kg×4セット ディップス:4セット ラットプルダウン:15kg×6セット サイドレイズ:3.0kg×4セット フロントレイズ:4.0kg×3セット |
2019年2月7日(木) | - | 休養 |
2019年2月8日(金) | 自宅 | スタンディングカーフレイズ:3セット スクワット:3セット |
自宅トレって難しいですね。種目がというより、気持ち的にという話です。
仕事終わって19時頃に帰って来て、早く晩ごはんを食べたい気持ちにかられて少し種目が減ってるような気がしています。
やっぱりジムに行くとなるとスイッチが入って筋トレモードになりますし、晩ごはんも帰るまで強制おあずけ状態になるので環境としてはジムの方が良いのかなと思いました。
あと、自宅では足トレをするのでそれが辛いというのもありますかねw
2019年に取り組んでいる筋トレはこちら↓
筋トレログ2019 (1/26〜2/1)
2019年1月26日(土)〜2月1日(金)の筋トレログを報告します。
日 | 場所 | トレーニング内容 |
---|---|---|
2019年1月26日(土) | 自宅 | 腕立て伏せ:3セット スタンディングカーフレイズ:6セット スクワット:3セット リバースプッシュアップ:3セット |
2019年1月27日(日) | ジム | ベンチプレス:10kg×2セット スミスマシン(インクライン):0kg×4セット ダンベルカール:3.0kg×3セット ラットプルダウン:15kg×4セット サイドレイズ:2.0kg×2セット |
2019年1月28日(月) | - | 休養 |
2019年1月29日(火) | 自宅 | スクワット:3セット スタンディングカーフレイズ:3セット |
2019年1月30日(水) | ジム | ベンチプレス:10kg×6セット スミスマシン(インクライン):0kg×3セット ダンベルカール:3.0kg×3セット ディップス:3セット サイドレイズ:3.0kg×3セット、2.0kg×2セット |
2019年1月31日(木) | - | 休養 |
2019年2月1日(金) | - | 休養 |
私の筋トレログでは回数は書いていません。そもそも「回数」に囚われずにトレーニングするというポリシーにしているので、数えてないというのが正直なところです。
ですが、体感ではそこまで少なからず多からずだと思うので、だいたい10〜15回ぐらいなのかなと思います。(そのぐらいで限界を迎えている気がする)
あまりにも回数をこなせるようになったり、負荷を感じなくなったタイミングで重量アップになるという感じですね。今のところ重量はほとんど変わってませんが(泣)
2019年に取り組んでいる筋トレはこちら↓
ReactNative+ExpoでAndroid端末へプッシュ通知を送る その①〜Expo プッシュトークンの取得〜
Expoを使用して開発するReactNativeアプリから各端末へプッシュ通知を送る仕組みを入れたいと思います。
私の端末はAndroidなのでまずはAndroid端末へ送れるようにしたのですが、途中試行錯誤したのでやり方を載せたいと思います。
※Android向けの説明になりますが、iOSの方も途中までは参考にしていただけます。 iOSだともう少し手間なくできるかも?です。(未検証)
- バージョン
- 準備
- 開発手順
- Push通知の手順
- プッシュトークンの取得
- Error: Couldn't get GCM token for device の対応
- Firebaseプロジェクトの作成
- androidパッケージの決定
- FirebaseへAndroidアプリの追加
- google-services.jsonのダウンロードと配置
- FCMサーバーキーの取得
- ExpoへFCMサーバーキーの登録
- プッシュ通知のテスト
- まとめ
バージョン
[アプリケーション]
・create-react-native-app:2.0.2
・Expo CLI:2.4.0
・React Native SDK:31.0.0
後は今回の記事に関係しないので割愛。
[端末]
準備
プッシュ通知の確認は実機ベースが必須なので、GooglePlayよりExpoアプリをインストールしておいてください。
開発手順
プライベートなリポジトリで開発しているためソースは断片的にしか公開できませんので、簡単に開発手順をまとめます。
Expo CLIを使ってプロジェクト作れる方は飛ばしてもらってもOKです。
create-react-native-app インストール
npm install -g create-react-native-app
私と同じバージョンで始める場合は、
npm install -g create-react-native-app@2.0.2
Expo CLI インストール
npm install -g expo-cli
私と同じバージョンで始める場合は、
npm install -g expo-cli@2.4.0
React Nativeプロジェクト作成
create-react-native-app [your-project-name]
これでプロジェクトが作成されます。
アプリ起動
expo start
npm start
ではなくexpoコマンドで起動します。
起動すると、localhost:19002でブラウザが自動で起動します。
↓こんな感じ
ここに表示されるQRコードをスマホ端末でExpoアプリを使ってスキャンすると、スマホ上にアプリがロードされます。(ここまでがアプリの初期セットアップ)
Push通知の手順
公式ドキュメントの内容をまとめると、
- Expoからプッシュトークンを取得する
- プッシュトークンを自分のサーバで保管する(ユーザ情報と紐付けておく)
- プッシュ通知を行うアクションが発生した際に、自分のサーバからExpoのプッシュ通知用のAPIをコールする(この際にプッシュトークンを使う)
- Expoが各端末へプッシュ通知を送る(OSのハンドリングはExpo側で行う)
- フォアグラウンドにあると通知が表示されないので、表示するようにハンドリングする(iOS用?)
読む限り、1でプッシュトークンが取得できれば、後はAPIを呼び出すだけのような気がします。
プッシュトークンの取得
先ほどの公式サイトにあるサンプルコードを真似てみます。
下記のコード(関数)をApp.jsに追加します。念のためtry-catchします。
import { Permissions, Notifications } from 'expo'; 〜〜 async function registerForPushNotificationsAsync() { try { const { status: existingStatus } = await Permissions.getAsync( Permissions.NOTIFICATIONS ); let finalStatus = existingStatus; // only ask if permissions have not already been determined, because // iOS won't necessarily prompt the user a second time. if (existingStatus !== 'granted') { // Android remote notification permissions are granted during the app // install, so this will only ask on iOS const { status } = await Permissions.askAsync(Permissions.NOTIFICATIONS); finalStatus = status; } // Stop here if the user did not grant permissions if (finalStatus !== 'granted') { return; } // Get the token that uniquely identifies this device let token = await Notifications.getExpoPushTokenAsync(); console.log(token); } catch (e) { console.error(e); } }
App.jsの初期処理で呼び出すようにします。
export default class App extends React.Component { componentDidMount() { registerForPushNotificationsAsync(); } render() { ... } }
ここまでは下記のブログを参考にさせていただいたので、これで動くと思っていました。
ですが!!
これでアプリを起動すると、、
Error: Couldn't get GCM token for device
なにやらエラーになりました。
どうもGCM(Google Cloud Messaging)が廃止され、FCM(Firebase Clound Messaging)へ移行しろっていう流れがあるらしいので、それに関連したエラーっぽいです。
Error: Couldn't get GCM token for device の対応
色々調べたのですが、公式ドキュメントに下記の記載があるのを見落としていました。
要約すると、
「FCMのサーバーキーをExpoに送ってくれないとExpoからプッシュ通知できなくなったんだ。こっちのページにFirebaseプロジェクトの作り方を書いたからそれを見てFCMサーバーキーの取得してExpoに送ってくれ。」
みたいなことを言ってます。
こちらに手順が書いてあるので、その通り進めていくことにします。
Firebaseプロジェクトの作成
Firebaseプロジェクトを作成していない方はFirebaseコンソールからプロジェクトを作成します。
https://console.firebase.google.com/
[+]プロジェクトを追加 を押します。
プロジェクト名を入力、地域/ロケーションを日本/asia-northeast1に変更してプロジェクトを作成します。
androidパッケージの決定
※これは公式ドキュメントには書かれていません。
この後の手順でandroidパッケージが必要になります。
これはアプリの開発元やアプリ名に依存しますので、各自で決定お願いします。
com.[your company].[your app name]
みたいな感じでしょうか。
決定しましたら、app.jsonに下記の記載を追加します。
"android": { "package": "[your android package]" }
既に "android"がある場合は、その中にpackageを追記します。
"android": { "hoge": "fuga", →"package": "[your android package]" }
FirebaseへAndroidアプリの追加
Firebaseコンソール画面で[Android アプリに Firebase を追加] をクリックするとアプリの登録画面が開きます。
ここに先ほど決定したandroidパッケージを入力して、[アプリを登録]します。
google-services.jsonのダウンロードと配置
アプリ登録が終わるとgoogle-services.json をダウンロードできるようになるのでダウンロードします。
ダウンロードしたgoogle-services.jsonはプロジェクト直下に配置します。
/ App.js app.json google-services.json
app.jsonに設定を追記します。
"android": { ...., "googleServicesFile": "./google-services.json" }
あともう少しです。
FCMサーバーキーの取得
Firebaseコンソールで[Project Overview の右の歯車] → [プロジェクトの設定] を押します。
[クラウドメッセージング]タブを開くとサーバーキーが表示されているので、コピーします。
ExpoへFCMサーバーキーの登録
最後にExpoへコピーしたサーバーキーを登録します。expoコマンドを使います。
expo push:android:upload --api-key <your-token-here>
途中でExpoのアカウント登録を要求されるので登録します。 登録後メールでverifyするとアカウント作成されます。
以上で必要な手順は終わりです。
プッシュ通知のテスト
ここまで来ると先ほどアプリ起動で出ていたエラーは出なくなり、以下のようなプッシュトークンがログに出力されると思います。
ExponentPushToken[xxxxxxx]
これをExponentから全てコピーします。
プッシュ通知は本来であればExpoのAPIを使用するのですが、下記のダッシュボード画面からプッシュ通知を送ることができます。
プッシュトークンとタイトルと本文を入力し [Send a notification]をクリックします。
すると、
スマホ側にプッシュ通知が届きました!
まとめ
いかがだったでしょうか?
基本的にはExpoが提供するサンプルコードでプッシュトークンは取得できるのですが、以前は起こらなかったGCMのエラーが出るようになっているので今回記載したようにFirebaseプロジェクトを作成する必要が出てきています。
この後はAWS Lambda経由で実際にExpoのAPIをコールしてみたいと思いますので、また実現できたら書こうと思います。
筋トレログ2019 (1/19〜1/25)
2019年1月19日(土)〜1月25日(金)の筋トレログを報告します。
今週から重量を載せるようにします。
軽量ウェイトでやってます!って言ってるのに100kgとかやってたらおかしいですもんね。
あ、過去2回の分もリライトします。
日 | 場所 | トレーニング内容 |
---|---|---|
2019年1月19日(土) | ジム | ベンチプレス:10kg×2セット、20kg×1セット スミスマシン(インクライン):0kg×3セット ディップス:3セット ラットプルダウン:15kg×4セット サイドレイズ:1.5kg×3セット |
2019年1月20日(日) | 自宅 | フロントレイズ:2.0kg×3セット ダンベルカール:3.0kg×6セット ワンレッグスクワット:6セット 逆プランク:1分×3セット |
2019年1月21日(月) | 自宅 | リバースクランチ:3セット |
2019年1月22日(火) | 自宅 | 腕立て伏せ:5セット スタンディングカーフレイズ:6セット |
2019年1月23日(水) | ジム | ダンベルカール:3.0kg×6セット ラットプルダウン:15kg×4セット サイドレイズ:2.0kg×4セット フロントレイズ:4.0kg×2セット |
2019年1月24日(木) | - | 休養 |
2019年1月25日(金) | - | 休養 |
バーベル種目(ベンチプレス、スミスマシン)はバーベルの重さ抜きで重りのみの重さを記載しています。
トレーニングは継続できていますが、書き起こしてみるとちょっと少ないかなという印象です。 さらに追い込んでいかないといけないですね!
2019年に取り組んでいる筋トレはこちら↓
筋トレログ2019 (1/12〜1/18)
2019年1月12日(土)〜1月18日(金)の筋トレログを報告します。
2019年2月11日追記:重量を記載しました
日 | 場所 | トレーニング内容 |
---|---|---|
2019年1月12日(土) | ジム | スミスマシン(インクライン):0kg×3セット ディップス:3セット ラットプルダウン:10kg×4セット サイドレイズ:1.5kg×3セット フロントレイズ:2.0kg×3セット ダンベルカール:3.0kg×3セット リバースクランチ:3セット |
2019年1月13日(日) | 自宅 | スタンディングカーフレイズ:3セット 逆プランク:2セット |
2019年1月14日(月) | 自宅 | サイドレイズ:1.5kg×3セット フロントレイズ:2.0kg×3セット ダンベルカール:3.0kg×3セット ワンレッグスクワット:6セット |
2019年1月15日(火) | 自宅 | スタンディングカーフレイズ:3セット |
2019年1月16日(水) | 自宅 | 腕立て伏せ:3セット サイドレイズ:1.5kg×3セット フロントレイズ:2.0kg×3セット サイドプッシュアップ:6セット |
2019年1月17日(木) | ジム | ラットプルダウン:10kg×3セット ダンベルカール:3kg×4セット |
2019年1月18日(金) | - | 休養 |
ジムトレと自宅トレでほぼ全身を満遍なくトレーニングできるようになりました。
背中のトレーニングだけはまだ自宅トレの良いメニューがないのでジムオンリーです。
おすすめの背中自宅トレがあれば教えてください!
2019年に取り組んでいる筋トレはこちら↓
筋トレログ2019 (1/5〜1/11)
前回のブログで、2019年から新たなトレーニングを始めたと書きました。
なので2018年と同じように筋トレをしたログを残していこうと思います。
筋トレログ ver2になります。
ver2は週単位の報告とします。
初回は2019年1月5日(土)〜1月11日(金)の筋トレログになります。
2019年2月11日追記:重量を記載しました
日 | 場所 | トレーニング内容 |
---|---|---|
2019年1月5日(土) | 自宅 | クランチ:2セット リバースクランチ:2セット スクワット:3セット |
2019年1月6日(日) | ジム | ベンチプレス:5.0kg×3セット スミスマシン(インクライン):0kg×3セット ディップス:3セット |
2019年1月7日(月) | 自宅 | サイドレイズ:1.5kg×3セット スタンディングカーフレイズ:3セット |
2019年1月8日(火) | 自宅 | プランク:1セット サイドプランク:2セット |
2019年1月9日(水) | 自宅 | 腕立て伏せ:3セット フロントレイズ:2.0kg×3セット スクワット:3セット |
2019年1月10日(木) | - | 休養 |
2019年1月11日(金) | - | 休養 |
7日中5日トレーニングを実施しました。
寒いので自宅トレが多くなり、自重系のトレーニングが多いですね。
自宅トレを導入すると、暑さ・寒さ・悪天候を理由にジムトレを休んでもトレーニングが継続できるのが非常に大きいと感じました。
部位を分けてトレーニングしているので、ほとんど毎日トレーニングしていても問題ありませんね。
これからも毎週分アップしていくのでよろしくお願いします!
2019年に取り組んでいる筋トレはこちら↓
軽量ウェイトと自重だけで体を変える!
2019年
これまでと違った取り組みで本気で体を変えてみたいと思います。
それは
軽量ウェイトと自重だけで体を変える
です!
タイトルだけ見ると「甘い!」って言われるかもしれませんが、できるだろうという算段はあります。
実際の成果や経過については定期的にブログにアップしていきますが、今回はどういう取り組みを行うかについて書きたいと思います。
今回の取り組み内容と成功する根拠
まず今回の取り組みにおいて大きな軸となるのは「トレーニング」と「食事」となります。
トレーニング
「軽量ウェイトと自重」
その名の通り、
を行います。
「軽いウェイト」とはどの程度かと言いますと、だいたい下表ぐらいと思ってください。
種目 | 重さ |
---|---|
ラットプルダウン | 10〜20kg |
ベンチプレス | 10〜20kg (バー除く) |
ダンベルカール | 3〜4kg |
2018年に行っていたトレーニングに比べると半分以下になっていると思います。
筋トレログ その14 - Tatsuyashi's Blog
筋トレログ その13 - Tatsuyashi's Blog
ただ、2018年までと明らかに違うのは各トレーニングの「質」です。
これまでのトレーニングにおいて、今思うとイケてない部分がありました。
- どのトレーニングがどの部位に効くか把握しきれていない
- 「重さ」にチャレンジしている
- フォームが完全に我流
上記のこともあり、思うような成果は出ていませんでした。
ところが、2018年末頃にジムを変えて、初めてパーソナルトレーニングを受けてみて衝撃を受けました。
ターゲットの部位を意識し、正しいフォームでトレーニングすることで、軽いウェイトでも今までにない位に筋肉に効く感覚があったのです。
逆の言い方をすると、
軽いウェイトでも効くぐらいに筋肉ができていないとも言えます。
ですので「軽量ウェイト」っていうのは、自分にとって、筋肉に効かせられる最低限の重量のことなんですね。
今回トレーニングとして意識することは、
- 正しいフォームで行う
- ターゲットの部位を意識する
- フォームを崩さない程度のウェイトを扱う
の3点となります。
また、1セットの回数については意識しません。
回数を設定すると、回数をこなすためにフォームを崩したり逆に追い込みが足らなくなる恐れがあるので、「もう力入らん!」っていうぐらいまではやるようにします。
「軽量ウェイト」って書くと楽をするように見えますが全くそうではないですよw
ギリギリまで追い込むのには変わりありません。 追い込めないぐらいになってきて初めて、重量アップを検討することになります。
自重トレ
また、自重トレについても積極的に導入します。
理由としては、家でできるトレーニングを増やしたいからです。
ジムに加えて家でトレーニングをすることでトレーニングの頻度を増やすことを狙います。
ちなみに私の家には1.5kgのダンベルしかないので(w)、家トレするなら必然的に自重トレがメインになりますね。
自重トレも同じようにトレーナーに予めフォームを教えてもらった上で、ターゲットを意識してトレーニングします。
当たり前ですが、自重は全然軽量ではないのでジムトレよりきつく感じます。
食事
そして食事です。
まず、体を変えるために大事なことは3つあります。
- トレーニング
- 食事
- 休息
トレーニングをして、適切な食事により筋肉を育て、休息を行い回復させる。
これは体が変わるシンプルな仕組みです。
3つのバランスが非常に大事になるのですが、中でも特に大事なのが「食事」です。
重要度でいうと、食事:トレーニングは7:3(または8:2)と言われています。
体が変わらないっていう人は「食事」を疎かにしている可能性があります。
私は素人なので専門的なことは言えませんが、食事に関して意識するのは
- たんぱく質をできるだけ絶やさないように摂取する
- 栄養を摂るタイミングに注意する
の2点です。
たんぱく質に関しては肉などの食事やプロテインのようなサプリメントで摂取します。
また、たんぱく質は吸収が早く枯渇すると筋肉が分解されてしまうので体内のたんぱく質をキープする必要があります。
そのため、朝食時のプロテインや休みの日の昼の間食としてプロテインを採ったりすることでたんぱく質を枯渇しないような工夫をしていきます。
また、こうやってトレーニングをしていると色んな栄養素を摂りたくなるので、ブロッコリーなどの野菜も多く摂るようにします。
(レシピ的なものもいずれはブログにあげるかもしれません)
スケジュール
ここまでで今回取り組もうとしている内容について書きました。
簡単にまとめるなら、
「正しいフォームで部位に効かせるために軽量ウェイトでトレーニングをし、トレーニング後やその後の栄養補給もぬかりなく行う」ことで体を変えていこうと考えています。
そもそも「体を変える」ってどういうことかと言いますと、
- しっかり筋肉がついている(そこそこモリモリ)
- 余計な脂肪がついていない
この写真は相当モリモリですが、まぁこういうカッコイイ体を目指すということです。
「見た目」がどう変わるかを重視するので、体重などの数値に囚われないようにします。(一応記録はします)
スケジュールについては「筋肉を付ける(増量)」と「脂肪を落とす(減量)」は両立するのが難しいらしいので、時期を分けるように考えています。
- 1〜4月 増量
- 5〜7月 減量
- 8〜10月 増量
- 11〜12月 減量
8月以降は仮ですがだいたい3〜4ヶ月周期で増・減しようかなと思います。
この記事を書いている1,2月は増量期なので、今は割とフリーに食べていますが、減量期には炭水化物の量を今より減らしてかつ筋肉を極力減らさないような方法をこれから考えていきます。
どのぐらいの頻度でどれだけのトレーニングをしたかっていうのは、またブログにアップしていきます。
2018年の筋トレログのように1日単位だとちょっと記事量産になりそうなので、1週間分の報告という形で書いていくようにします。
これからどういう風に体が変わっていくのか楽しみですね!