SwiftUI에서 유파를 구현해보십시오.

14083 단어 SwiftUI재료유파

소개



하리에는 편승하고 싶어지는 것이 사람의 정이지요, 라는 이유로 SwiftUI에서 해 보았습니다.

Swift만으로도 좋았지만 모처럼이었고 최근 Playgroud가 Xcode를 열고 한 번의 클릭으로 만들 수 없어서 ...
(원재료 등의 링크는 길어졌으므로 기사의 끝에 붙여 있습니다.)

구현



모처럼이므로 Siri 씨에게 말했습니다. 또한 앱이므로 계약서처럼 보았습니다. 코드는 이런 느낌입니다.
struct ContentView: View {
    @State var name: String = ""
    let talker = AVSpeechSynthesizer()

    var body: some View {
        VStack {
            Spacer()
            Text("契約書")
                .font(.system(.largeTitle, design: .serif))
                .fontWeight(.bold)
                .multilineTextAlignment(.center)
                .padding()
            Spacer()
            TextField("名前を書きな", text: $name)
                .padding(.all)
                .cornerRadius(10.0)
                .background(Color.gray.opacity(0.1))
            Spacer()
            Button("契約", action: {
                let shortName = String(name.randomElement() ?? "千")
                let utterance = AVSpeechUtterance(string: "フン。\(name)というのかい。贅沢な名だねぇ。今からお前の名前は\(shortName)だ。いいかい、\(shortName)だよ。分かったら返事をするんだ、\(shortName)!")
                utterance.voice =  AVSpeechSynthesisVoice(language: "ja-JP")
                talker.speak(utterance)
            })
            .padding(.all)
            .frame(width: 100, height: 100, alignment: .center)
            .foregroundColor(.white)
            .background(Color.red)
            .cornerRadius(50)
            .font(.system(.title, design: .serif))

            Spacer()
        }
        .padding(.horizontal, 20.0)
        .onAppear {
            let utterance = AVSpeechUtterance(string: "契約書だよ。そこに名前を書きな!")
            utterance.voice = AVSpeechSynthesisVoice(language: "ja-JP")
            talker.speak(utterance)
        }
    }
}

디자인 때 Modifier의 순서로 디자인이 바뀌는 것은 어쩐지 더 직관적인 방법 없는 것일까라고 조금 생각하거나 생각하지 않거나.

그건 그렇고, randomElement가 작동하지 않을 때 (입력하지 않았다면) 모두 강제로 "천"입니다.

실행 결과




여기서 "이름을 쓰지 마세요"의 음성이 재생됩니다.
이름 입력






처음 앱을 시작하면 "계약서야. 거기에 이름을 쓰지 마!"라는 음성이 흐릅니다.
그 후 이름을 입력하고 계약과 누르면 유파에서 이름을 취할 수 있다는 치수입니다.

한 개 감동한 것은 지금의 SwiftUI는 Spacer와 까다롭고 있으면 상당히 좋게 화면의 요소를 해주는군요, 좋은 UX/DX

이것으로 무사유 할머니의 종업원이 되었습니다. (메디시메데타시?)
덧붙여서 치히로라고 입력하면 치히로는 「치히로」, 치는 「선」이라고 읽어 주므로 영화의 완전 재현이 됩니다.

요약



그렇기 때문에 SwiftUI에서는 역시 실려 보았습니다. 실제 음성을 듣고 싶다면 여기에서 Clone을 사용해보십시오.
  • 동양/YuBaBa

  • 악센트는 대체로 좋은 느낌입니다만, 여기서 어미를 올리고 싶다든가는 잘 하는 방법 있거나 합니까(조사하지 않는다)
    어드벤트 캘린더 전에 이런 붐이 일어나는 조금 드문 생각도 합니다만 여러분도 프로그래밍 즐기자! Let's 유파! 웃음

    기타 유파

    모두 인용하겠다고 생각했지만 조금 너무 많아 바보였습니다 ...
    원래 재료는 첫 번째 자바입니다. 그리고 이것을 확실히 정리하기 위해 nippoly
  • 자바로 유파를 구현해 보자 ​​- Qiita
  • PHP로 유파를 구현해보십시오 - Qiita
  • Red 언어로 유파 - Qiita
  • gas와 linebot으로 유파를 구현해 보았다 - Qiita
  • Bash에서 유파를 구현해 보세요 (짧은) - Qiita
  • 자바스크립트에서 유파를 구현해 보기 - Qiita
  • 배치 파일로 유파를 구현해 보기 - Qiita
  • 【TwitterAPI】 「사치스러운 이름이네. 지금부터 너의 이름은 ○○이다.」【Ruby】 - Qiita
  • MSX BASIC에서 유파를 구현해보십시오 - Qiita
  • J에서 유파를 구현해보십시오 - Qiita
  • Nim에서 할머니를 구현해보십시오 - Qiita
  • 유파는 참조로 떨어지기 때문에 이름을 쓰지 않는 것이 좋다 - Qiita
  • Bash에서 별칭을 만들 수있는 할머니 명령을 구현했습니다. - Qiita
  • 파이썬 3에서 유파를 구현해보십시오 - Qiita
  • monaca (JS)로 안드로이드 판 유파를 구현해보십시오 - Qiita
  • Discord Bot에서 유파를 구현해보십시오 - Qiita
  • Rust에서 병렬 처리 할 수있는 할머니를 구현해보십시오 - Qiita
  • PureScript로 유파를 구현해보십시오 - Qiita
  • Clojure에서 유파를 구현해보십시오 - Qiita
  • Ruby로 유파를 구현해보십시오 - Qiita
  • Elixir에서 유파를 구현해보십시오 - Qiita
  • Dart에서 유파를 구현해보십시오 - Qiita
  • C에서 할머니를 구현해보십시오 - Qiita
  • D언어로 할머니를 구현해보기 - Qiita
  • Go 언어로 할머니를 구현해보기 - Qiita
  • 자바에서 유행하는 오류를 피하기 - Qiita
  • Rust에서 유파를 구현해보십시오 - Qiita
  • 좋은 웹페이지 즐겨찾기