오디가
PROJECTS | | Links:
NOTE: Side Project with 5 team members
1. Description
- 진행기간: 2017.03 ~ 2017.12
- 프로젝트 내용: 여행지에서 각 명소에 대한 재미있는 이야기를 음성으로 가이드 해주는 앱
- 역할: iOS 앱 개발 및 리뷰 관련 API Lambda 작성
- 사용한 Skill:
Swift
,MVC 패턴
,AWS Lambda
,AWS Gateway
- 성과: 스타트업 액셀러레이터 프라이머 11기에서 개별 멘토링 진행
2. Code Snippet
//
// MyPageViewController.swift
// audiga
//
// Created by 진형탁 on 2017. 8. 26..
// Copyright © 2017년 audiga. All rights reserved.
//
import UIKit
import Firebase
import Alamofire
class MyPageLoginViewController: UIViewController {
@IBOutlet weak var titleCenterConst: NSLayoutConstraint!
...
override func viewDidLoad() {
super.viewDidLoad()
setBackButtonUI()
setTextUI()
self.addGesture()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UserHabit.sharedInstance().setScreen(self, withName: "My Page for Login")
}
func setBackButtonUI() {
self.backBtn.frame = CGRect(x: 1, y: 19, width: 44, height: 44)
self.backBtn.setImage(UIImage(named: "btn_back_black")?.withRenderingMode(.alwaysTemplate), for: UIControlState())
self.backBtn.tintColor = UIColor.charcoalGrey
if isiPhoneXScreen() {
self.navTopLayout.constant = 0
self.navHeight.constant = 80
self.titleCenterConst.constant = 15
self.backBtn.frame = CGRect(x: 1, y: 34, width: 44, height: 44)
}
view.addSubview(backBtn)
}
...
}
extension MyPageLoginViewController: SegueProtocol {
...
func getAllPurchasedCourse(idToken: String) {
allPurchasedCourse.removeAll()
// Get all purchased courseId
let token: String = "Firebase " + idToken
let serverURL = AUDIGA_HOST
let purchaseURL = "/api/v1/courses/purchases"
let headers: HTTPHeaders = [
"Authorization": token,
"Accept": "application/json"
]
// send imp_uid to server
Alamofire.request(serverURL+purchaseURL, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers).validate()
.responseArray { (response: DataResponse<[Purchase]>) in
switch response.result {
case .success:
let result = response.result.value
if let result = result {
allPurchasedCourse += result
}
self.moveRouteView()
case .failure(let error):
let appDelegate: AppDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window?.makeToast("인터넷에 연결되어 있지 않습니다.\n무선 인터넷 연결 상태를 확인해주세요.", duration: 1.0, position: .bottom)
}
}
}
}
3. Demo
4. Images