1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初の個人アプリ開発!!!

iOSアプリエンジニアになって1年半ちょいが経過しました。少し遅かったのですがついに個人アプリを開発した!!

アプリの概要

英語日記

アプリとしては、英語日記!
私個人的に英語を勉強しておりまして、新井リオさんの英語日記BOYの勉強法をもとにアプリ開発を行いました。
英単語暗記などの作業がどうしてもつまらなくて続きませんでした。この本を読んでこの勉強法だ!!!ってなったのがきっかけで、せっかくなら色んな人にこの勉強法を知ってもらえて、アプリ化できたら最高やなぁとか思った笑

アプリ制作にかかった時間

平日仕事終わった後と土日の時間を使いました。大体2ヶ月くらい?で終わったと思う

アプリの機能

・英語発話機能
・ワード検索
・英語発話読み上げスピード調整
・英語発話の声の高さ調整
・スピーキング練習

順に説明します!

英語発話機能・読み上げスピード・声の高さ調整機能

これは再生ボタンタップで英語を読んでくれます!
hoge.jpg

コードを載せますー

import Foundation
import AVFAudio

class Speecher {
    
    static let shard = Speecher()
    private init() {}
    
    let defaultSpeedValue: Float = 0.5
    let defaultPitchValue: Float = 1.0
    
    var speechSynthesizer = AVSpeechSynthesizer()
    
    func speech(voiceText: String, speed: Float? = nil, pitch: Float? = nil) {
        let utterance = AVSpeechUtterance.init(string: voiceText)
        if let speed {
            utterance.rate = speed
        }
        if let pitch {
            utterance.pitchMultiplier = pitch
        }
        utterance.voice = AVSpeechSynthesisVoice.init(language: "en-US")
        speechSynthesizer.speak(utterance)
    }
}

これだけで発話機能を実装できるのいいですね!

ワード検索機能

日記orオリジナル英作文を検索したいので、何か検索ワードにヒットしたらその日記だけ表示するようにしました。

fileprivate extension Array where Element == Diary {
    func filter(searchWord: String) -> [Diary] {
        return filter {
            guard let english = $0.english,
                  let japanese = $0.japanese,
                  let situation = $0.situation,
                  let wantToSay = $0.wantToSay,
                  let createdAt = $0.createdAt else {
                return false
            }
            let createdAtString = Date.dateToString(date: createdAt)
            return english.contains(searchWord) ||
            japanese.contains(searchWord) ||
            situation.contains(searchWord) ||
            wantToSay.contains(searchWord) ||
            createdAtString.contains(searchWord)
        }
    }
}

Arrayのextensionを作成して型をDiary型に限定しました。

このアプリの一番使い勝手がいいなと思うとこと

最低限の英文法は勉強しないといけないと思いますが、そこからは自分がこんなことを言いたい!とかこの場合英語でなんて言えばいいんだろうみたいなことってたくさんあると思います。そんな時にこのアプリを使って、皆さんの英語の勉強が捗ってくれると嬉しいです。私個人的にも使用しています。
私は、独り言とかブツブツ言いながら、この時なんて言うのかな?ってをアプリにメモして、色々調べながら英語で文章を作ってから、オンライン英会話の先生にこの文章あってる?(is this sentence correct?)っていつも聞いています笑

エンジニアってなって後3ヶ月で2年

後3ヶ月でもう2年になります。エンジニアは勉強することが多すぎて参っちゃう時があるのと、自分の成長がなかなか分からない時があります。皆さんは毎日どれくらい勉強していますか?
そろそろ勉強会とかに参加してみようかなとか思ってます。会社以外の方のレベル感とかも知りたいし、、

最後に

是非英語勉強している方、オンライン英会話を受講している方などにインストールしてほしい!
これからどんどんアプリリリースしていきます!

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?