<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Takeo</title>
    <description>The latest articles on DEV Community by Takeo (@cyber_muse).</description>
    <link>https://dev.to/cyber_muse</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F522016%2Ff726880b-1b32-4f1f-88ed-f4a70f3cd869.jpg</url>
      <title>DEV Community: Takeo</title>
      <link>https://dev.to/cyber_muse</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cyber_muse"/>
    <language>en</language>
    <item>
      <title>- Cyber Muse - Music submission app has been released! (Personal Development)</title>
      <dc:creator>Takeo</dc:creator>
      <pubDate>Fri, 27 Nov 2020 21:13:20 +0000</pubDate>
      <link>https://dev.to/cyber_muse/cyber-muse-music-submission-app-has-been-released-personal-development-m0m</link>
      <guid>https://dev.to/cyber_muse/cyber-muse-music-submission-app-has-been-released-personal-development-m0m</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;I developed a music submission app!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://cyber-muse.com"&gt;https://cyber-muse.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apple Store: &lt;a href="https://apps.apple.com/app/id1511131064"&gt;https://apps.apple.com/app/id1511131064&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Play:&lt;a href="https://play.google.com/store/apps/details?id=com.front_music"&gt;https://play.google.com/store/apps/details?id=com.front_music&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;We use &lt;a href="https://ja.reactjs.org/"&gt;React&lt;/a&gt; and &lt;a href="https://reactnative.dev/"&gt;React Native&lt;/a&gt; as our development languages.&lt;/p&gt;

&lt;p&gt;I have done everything from development to operation on my own. &lt;/p&gt;

&lt;h1&gt;
  
  
  Impressions about React &amp;amp; React Native
&lt;/h1&gt;

&lt;p&gt;It's been about a year since I started writing React, and it was my part-time job that inspired me to learn React. Before that, I wasn't really interested in front-end stuff, and I wrote a lot of &lt;a href="https://www.python.jp/"&gt;Python&lt;/a&gt;. My part-time job was mainly in React (JS), so I started learning it after I got an interview. The frequency of my part-time job was about 8 hours a day, twice a week.&lt;/p&gt;

&lt;h3&gt;
  
  
  React.
&lt;/h3&gt;

&lt;p&gt;React is very easy to write in my opinion. Personally, I didn't like to write js in script in html or in a js file independent of UI. Isn't it hard to see?&lt;br&gt;
If there's one thing you can stumble upon in React, it's the concept of state.&lt;br&gt;
It's hard to understand the concept around hooks. I'm not sure if there is a better article in Japanese on this subject.&lt;br&gt;
You can read it here: &lt;a href="https://iqkui.com/ja/a-complete-guide-to-useeffect/"&gt;https://iqkui.com/ja/a-complete-guide-to-useeffect/&lt;/a&gt;&lt;br&gt;
The other thing is an exception, but it's file uploader-related. There is no file uploader that can be used for &lt;a href="https://graphql.org/"&gt;GraphQL&lt;/a&gt;, which connects the back-end and front-end. I don't think it's a good idea to upload files through GraphQL in the first place. In the back end, I used &lt;a href="https://v1.prisma.io/docs/1.34/get-started/01-setting-up-prisma-new-database-JAVASCRIPT-a002/"&gt;Prisma&lt;/a&gt; or [Docker](https:// I've been using &lt;a href="//www.docker.com/"&gt;Prisma&lt;/a&gt; or &lt;a href="//www.docker.com/"&gt;Docker&lt;/a&gt; on the backend, so what's the point?&lt;br&gt;
I won't write about the backend in this article because I don't want to write about it.&lt;br&gt;
I'm going to write React Native as well, after getting used to React.&lt;/p&gt;

&lt;h3&gt;
  
  
  React Native.
&lt;/h3&gt;

&lt;p&gt;I think the most difficult part of React Native is the preparation before writing the code. If you don't know the settings of Xcode or Pod for iOS, the build will fail. My part-time job was operating an app, so I had to build something that was already completed. The build time was about 5 to 10 minutes. So if you're not used to it, you might fail to build it when you're not close to it. If you're not used to it, you might fail to build and get stuck in the middle.&lt;br&gt;
　So, in the beginning of my mobile app development, I had a lot of problems, but now that I'm able to develop both iOS and Android apps, I feel it's OK.&lt;br&gt;
　Yes, this is the advantage of React Native, in my opinion. If I wanted to develop iOS and Android in a native language, I'd have to learn both swift and java; with React Native, there's almost no need to tinker with the UI, although there are certainly some differences. All you have to do is learn how to build and release. The only thing I'd like to mention is that it's time to manipulate files within the app. Selecting and uploading photos. What's the bug if you don't know, huh? The last thing I'll say about React Native's UI.　&lt;/p&gt;

&lt;p&gt;In the last section, I'll talk about React Native's UI, which has a lot of open source components that are useful. It's a good idea to avoid using github releases whose latest version is two years old. The other thing I really appreciate about css flex is that it's very useful. The key words are flexDirection, justifyContent, and alignItems. If you have these three, the screen will be neatly arranged.&lt;/p&gt;

&lt;p&gt;This is my honest opinion about React Native.&lt;/p&gt;

&lt;h1&gt;
  
  
  About website animation.
&lt;/h1&gt;

&lt;p&gt;In fact, we recently updated our website to incorporate animation.&lt;br&gt;
You can check it out at &lt;a href="https://cyber-muse.com"&gt;https://cyber-muse.com&lt;/a&gt;&lt;br&gt;
All animations on this website use the module &lt;a href=""&gt;react-spring&lt;/a&gt;.&lt;br&gt;
You can find it here: &lt;a href="https://www.react-spring.io/"&gt;https://www.react-spring.io/&lt;/a&gt;&lt;br&gt;
I would like to introduce this module as if you could add scrolling control to it to create at least one website of my own.&lt;/p&gt;

&lt;h1&gt;
  
  
  At the end
&lt;/h1&gt;

&lt;p&gt;With &lt;strong&gt;React&lt;/strong&gt; and &lt;strong&gt;React Native&lt;/strong&gt; you can create websites and apps like this! I hope it will be helpful to you.&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://cyber-muse.com"&gt;https://cyber-muse.com&lt;/a&gt;&lt;br&gt;
Apple Store: &lt;a href="https://apps.apple.com/app/id1511131064"&gt;https://apps.apple.com/app/id1511131064&lt;/a&gt;&lt;br&gt;
Google Play: &lt;a href="https://play.google.com/store/apps/details?id=com.front_music"&gt;https://play.google.com/store/apps/details?id=com.front_music&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Translated with &lt;a href="http://www.DeepL.com/Translator"&gt;www.DeepL.com/Translator&lt;/a&gt; (free version)&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>ios</category>
      <category>android</category>
    </item>
    <item>
      <title>- Cyber Muse - 音楽投稿アプリをリリースしました！（個人開発）</title>
      <dc:creator>Takeo</dc:creator>
      <pubDate>Fri, 27 Nov 2020 21:07:51 +0000</pubDate>
      <link>https://dev.to/cyber_muse/cyber-muse-4a6n</link>
      <guid>https://dev.to/cyber_muse/cyber-muse-4a6n</guid>
      <description>&lt;h1&gt;
  
  
  初めに
&lt;/h1&gt;

&lt;p&gt;音楽投稿アプリを開発しました！&lt;/p&gt;

&lt;p&gt;ウェブサイト： &lt;/p&gt;

&lt;p&gt;&lt;a href="https://cyber-muse.com"&gt;https://cyber-muse.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apple Store:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apps.apple.com/app/id1511131064"&gt;https://apps.apple.com/app/id1511131064&lt;/a&gt;&lt;br&gt;
Google Play:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.front_music"&gt;https://play.google.com/store/apps/details?id=com.front_music&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;開発言語は&lt;a href="https://ja.reactjs.org/"&gt;React&lt;/a&gt;と&lt;a href="https://reactnative.dev/"&gt;React Native&lt;/a&gt;を使用しています。&lt;/p&gt;

&lt;p&gt;開発から運用まで全て個人で行っています。&lt;del&gt;開発から運用まで大変だったことなど色々書いていきたいと思います。&lt;/del&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  React &amp;amp; React Nativeについての所感
&lt;/h1&gt;

&lt;p&gt;気づけばReactを書き始めてから1年ぐらいがたってしまいました。Reactを学ぶきっかけとなったのはアルバイトです。それまではフロントエンドについてはあまり興味がなく、&lt;a href="https://www.python.jp/"&gt;Python&lt;/a&gt;をよく書いていました。バイト先ではReact(JS)がメインだったので面接に受かってから学び始めました。バイトの頻度は週二回1日8時間くらいでした。&lt;/p&gt;

&lt;h3&gt;
  
  
  React
&lt;/h3&gt;

&lt;p&gt;Reactは個人的にすごく書きやすい。個人的にhtml内のscriptの中やUIとは独立したjsファイルにjsを書くのが嫌いだったので。見にくくないですか？&lt;br&gt;
Reactでつまづくとすれば、それはstateという概念だ。hooks周辺を理解するのは難しい。&lt;br&gt;
useEffectについてひたすら調べまくりました。正直日本語でこれ以上に分かりやすい記事は他にないと思う。&lt;br&gt;
&lt;a href="https://iqkui.com/ja/a-complete-guide-to-useeffect/"&gt;https://iqkui.com/ja/a-complete-guide-to-useeffect/&lt;/a&gt;&lt;br&gt;
あとは例外的ではあるがファイルアップロード関係かな。バイト先では&lt;a href="https://graphql.org/"&gt;GraphQL&lt;/a&gt;というバックエンドとフロントを繋ぐものを使用していたのだが、これに使えるファイルアップローダーの無さといったらもう。そもそもGraphQLを通してファイルアップロードするのもどうかと思うんだが。バックエンドで&lt;a href="https://v1.prisma.io/docs/1.34/get-started/01-setting-up-prisma-new-database-JAVASCRIPT-a002/"&gt;Prisma&lt;/a&gt;とか&lt;a href="https://www.docker.com/"&gt;Docker&lt;/a&gt;とか使ってたからしゃあなしか？&lt;br&gt;
今回バックエンドについては特にかくつもりないので割愛します。&lt;br&gt;
とまぁこんな感じでReactに慣れてきたらReact Nativeも書くようになりました。&lt;/p&gt;

&lt;h3&gt;
  
  
  React Native
&lt;/h3&gt;

&lt;p&gt;React Nativeで一番大変なのはコードを書く以前の準備だと思います。モバイルアプリの開発はSimulatorをたてた状態で行わないといけませんが、慣れないうちはこれが大変です。iOSで言えばpodあたりやXcodeの設定をしっかり把握していないとビルドが失敗します。バイト先はアプリの運用をしていたので、既に完成されているものをビルドしなければいけません。ビルド時間は5~10分くらいかかっていました。ですので、慣れていないと後少し!!というところでビルドが失敗したりしてドツボにハマったりします。&lt;br&gt;
　という感じで僕のモバイルアプリ開発の始めは苦しむことが多かったですが、今はiOSもAndroidもできているのでいいかなという感じです。&lt;br&gt;
　そう、これがReact Nativeの利点だと僕は思う。ネイティブ言語でiOSとAndroidの開発をしようと思ったら、swiftやjavaの両方を学ばなければいけないからだ。React Nativeを使えば、多少の差があることは確かだがUIでいじる必要があることはほとんどない。ビルドの仕方とリリースの仕方を学べばそれでいい。多少の差に言及しておくとそれはアプリ内でファイル操作をする時だ。写真を選択したり、アップロードしたり。知らないとバグって、は？ってなる。　&lt;/p&gt;

&lt;p&gt;最後にReact NativeのUIについて述べる。UIはオープンソースのコンポーネントが色々あって便利だと思う。が、React Nativeのバージョンの違いとかで役に立たなかったりするやつがあるから注意。githubのReleasesのlatestが2年前とかのやつには手を出さないのが無難だ。あとは、cssのflexの有り難みがすごくわかる。キーワードはflexDirection, justifyContent, alignItemsだ。この３つがあれば画面が綺麗に整う。&lt;/p&gt;

&lt;p&gt;所感の割りには色々書きすぎたと思うが以上がReact Nativeに関する正直な感想だ。&lt;/p&gt;

&lt;h1&gt;
  
  
  ウェブサイトのアニメーションについて
&lt;/h1&gt;

&lt;p&gt;実は最近ウェブサイトをアップデートしてアニメーションを取り入れた。&lt;br&gt;
&lt;a href="https://cyber-muse.com"&gt;https://cyber-muse.com&lt;/a&gt;&lt;br&gt;
このウェブサイトのアニメーションは全て&lt;a href=""&gt;react-spring&lt;/a&gt;というモジュールを使用している。&lt;br&gt;
&lt;a href="https://www.react-spring.io/"&gt;https://www.react-spring.io/&lt;/a&gt;&lt;br&gt;
このモジュールにスクロールの制御を加えると僕が作ったウェブサイトぐらいは作れるという感じで紹介しておこう。&lt;/p&gt;

&lt;h1&gt;
  
  
  終わりに
&lt;/h1&gt;

&lt;p&gt;初めの文章に取り消しせんが付いている通りです。&lt;br&gt;
ReactとReact Nativeについて述べただけになってしまいました。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;React&lt;/strong&gt;と&lt;strong&gt;React Native&lt;/strong&gt;を使えばこういうウェブサイトやアプリが作れる！！という参考になればいいと思います。&lt;/p&gt;

&lt;p&gt;ウェブサイト： &lt;a href="https://cyber-muse.com"&gt;https://cyber-muse.com&lt;/a&gt;&lt;br&gt;
Apple Store: &lt;a href="https://apps.apple.com/app/id1511131064"&gt;https://apps.apple.com/app/id1511131064&lt;/a&gt;&lt;br&gt;
Google Play: &lt;a href="https://play.google.com/store/apps/details?id=com.front_music"&gt;https://play.google.com/store/apps/details?id=com.front_music&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactnative</category>
      <category>ios</category>
      <category>android</category>
    </item>
  </channel>
</rss>
