https://simth999wrld.tistory.com/74
1차시. OT
간단하게 스터디 일정과 인사후 개인프로젝트 소개를 하였습니다, ^_^/ 간단하게 아이디어를 정리해보았습니다.. 진행과정을 간간히 올려보도록 노력! 프로젝트 개요 앱 이름: ??? 프로젝트의 동
simth999wrld.tistory.com
위를 바탕으로 개발을 시작하였습니다.
1. 시장조사
제가 구상한 퀴즈 앱을 구상하기 위해 앱스토어를 둘러보았습니다 하하.. (대충 요런것 둘러봤다는 뜻)
2. 뷰 구성
둘러보며 간단하게 저의 앱의 뷰를 구성하였는데요,
홈뷰
오늘의 단어와 뜻을 간단하게 알려줌.
퀴즈뷰
퀴즈 시작 시 단어의 뜻과 관련 사진을 알려주고 단어를 맞추는 방식.
정답 여부와 관계없이 TTS로 단어를 읽어줍니다.
알림뷰
오늘의 단어를 알림을 통해 사용자에게 알려주기
알림 시간 설정 기능
알림 ON/OFF 기능
이렇게 3개의 뷰로 구성할것입니다.
+오늘의 단어와 뜻 보여주는 위젯 구성하기.
3. 우리말샘 API호출 테스트
단어와 뜻을 가져오기 위해 우리말샘의 API를 사용하였습니다.
사이트에서 저의 API키를 받고 openAPI 예시를 "미끼" 로 확인하였습니다.
위와 같이 JSON을 불러와야 하니 DataModel을 구성하였구요
struct WordData: Codable {
let channel: Channel
}
struct Channel: Codable {
let item: [Item]
}
struct Item: Codable {
let word: String
let sense: [Sense]
}
struct Sense: Codable {
let definition: String
let pos: String?
let link: String
let type: String
}
우리말샘 사용을 위해 UrlSession 네트워크 통신을 하였습니담~
class WordNetwork: ObservableObject {
@Published var wordData: WordData?
func searchWord(_ searchWord: String) {
let urlString = "https://opendict.korean.go.kr/api/search?certkey_no=6282&key=\(YourApiKey)&target_type=search&req_type=json&part=word&q=\(searchWord)&sort=dict&start=1&num=10"
if let url = URL(string: urlString) {
let session = URLSession(configuration: .default)
let task = session.dataTask(with: url) { data, response, error in
if error == nil {
if let safeData = data {
do {
let decodedData = try JSONDecoder().decode(WordData.self, from: safeData)
DispatchQueue.main.async {
self.wordData = decodedData
}
} catch {
print(error)
}
}
}
}
task.resume()
}
}
}
네트워크 통신을 통해 단어를 검색하여 단어와 뜻을 가져올 수 있게 되었습니다.
간단하게 버튼을 활용해서 "살림"이란 단어를 검색하여
테스트 하였습니다.
4. 문제발생
4.1) 시뮬레이터 잘려보이는 현상
앱을 빌드하니, 시뮬레이터에서 화면이 꽉차지 않는 현상이 있더라군요,,
이는 간단히 앱의 General-AppIcons and Launch Screen
의 Launch Screen File을 main 또는 LaunchScreen으로 하면 된다고 합니다 하하...😅😅
4.2) 고급 단어 어떻게 가져올까...?
고급 단어를 어떻게 가져올까...합니다..
이는 아직 해결은 안됐습니다,,,
그래서! 원시적인 방법으로 문제해결 같아 보이게 하였는데요,,
하드코딩을 하여 조금 어려울만한 단어들을 검색해 넣어두었습니다. ^_^
이 문제에 대해 아이디어가 있으면 알려주세요,,ㅜㅠ
5. 다음 할일
api호출을 위한 테스트를 해보았구요. 이제 기능들을 차차 구현해 나갈 계획입니다.
퀴즈뷰 부터 시작 하려합니다.
예상은 단어의 뜻과 관련 이미지를 보여주고, 4개의 보기중 정답인 단어를 맞추는 식으로 할것같은데,,
보기의 오답 단어는 어떻게 할까~ 하다 정답과 비슷한 유의어를 보여줄것 같습니다!
이것또한 오픈api를 사용 하려 합니다.
정답 단어의 관련 이미지는 네이버 이미지검색 api를 활용하면 좋을것 같습니다 하하~~
어려운 단어 어떻게 가져올지 알려줘 젭알
https://opendict.korean.go.kr/main
우리말샘 - 함께 만들고 모두 누리는 우리말 사전
opendict.korean.go.kr
https://aiopen.etri.re.kr/guide/Homonym
AI API/DATA
JSON parsing을 위해 Gson 라이브러리를 사용하여 제공하고 있습니다. Gson 라이브러리에 대한 자세한 설명은 https://github.com/google/gson 에서 확인 하실 수 있습니다. import java.io.DataOutputStream; import java.io.
aiopen.etri.re.kr
검색 > 이미지 - Search API
검색 > 이미지 이미지 검색 개요 개요 검색 API와 이미지 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 영화, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수
developers.naver.com
'스터디 > 우리말 단어 퀴즈(SwiftUI)' 카테고리의 다른 글
우리말 퀴즈 앱)5. urlSession을 async await으로 바꾸기.. (0) | 2024.05.19 |
---|---|
우리말 퀴즈 앱)4. 위젯, Scheme 사용한 API KEY 숨기기 (0) | 2024.03.25 |
우리말 퀴즈 앱)3.Alamofier, 네이버 검색 API 사용 (0) | 2024.02.23 |
우리말 퀴즈 앱)2.퀴즈뷰 구성중... (0) | 2024.01.29 |
1차시. OT (0) | 2024.01.24 |