iOS/app

[iOS] 스위프트로 간단한 앱 만들기 :: 오늘 뭐 먹지?

Sweetft 2022. 2. 9. 14:03

뷰컨트롤러 하나로만 만드는 간단한 앱 오늘 뭐 먹지!

오늘 뭐 먹지? 고민될 때 해답을 찾아주는 앱으로

하나의 화면으로만 구성되어 있다.

식사 or 후식 버튼을 클릭하면 그에 맞는 음식이름과 사진을 랜덤으로 뽑아주는 앱이다.

 

이후 textfield에 지역명을 입력하고 버튼을 클릭하면 지역명 + 음식이름을 웹에 검색하여 보여준다.

ex) 강남 돈까스

 

오토레이아웃까지 적용한 메인스토리보드 화면이다.

 

 

음식사진이 나올 이미지뷰 : foodImg

음식 이름이 나올 레이블 : foodName

식사 버튼 : mealBtn

후식 버튼 : dessertBtn

 

뷰컨트롤러에 아웃렛 변수와 액션 함수 설정을 해준다.

 

새로운 스위프트 파일을 만들어 구조체를 정의해준다.

식사와 디저트 두 가지 구조체가 필요하다.

각각의 구조체에는 이름과 사진 변수만 선언

 

meal, dessert 구조체를 생성하고 초기화하고 가갂 meals,desserts 배열에 구조체의 인스턴스를 넣는다.

이는 언제든 수정이 가능하니 임시로 두개씩만 넣어뒀다.

 

 

식사와 후식 버튼을 클릭하면 랜덤으로 배열에 저장되어 있는 데이터가 출력되도록 하는 함수이다.

arc4random_uniform()은 난수를 생성하는 함수이다.

 

 

여기까지 하면 랜덤으로 음식을 추천해주는 앱이 완성되었다!

추가적으로 검색 기능을 넣어보자.

텍스트필드에 지역을 입력하고 검색 버튼을 누르면, 추천받은 음식명+지역명을 네이버에 검색한 창을 사파리 페이지에서 보여주는 기능이다.

 

 

레이아웃은 위와 같다.

 

코드▼

@IBAction func searchBtn(_ sender: Any) {
        let keyword = locationTxt.text! + " " + foodName.text!
        let url = "https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query="+keyword //네이버 검색 링크 + 키워드
        guard let encodedUrl = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else { return } // 이거 없으면 한글 nil 값 나옴
        let searchWord = NSURL(string: encodedUrl) // 인코딩
        let searchSafariView : SFSafariViewController = SFSafariViewController(url: searchWord as! URL) //사파리 뷰 컨트롤러를 생성하여 url 연결해줌
        self.present(searchSafariView, animated: true, completion: nil) //사파리 뷰를 띄움
    }

 

 

▼최종화면▼

 

'iOS > app' 카테고리의 다른 글

[Swift/iOS] 간단한 To Do List 앱  (1) 2022.04.17