9oHigh / usKet.Memo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Memo Project ๐Ÿƒ๐Ÿปโ€โ™‚ (2021.11.9 ~)

  1. ๊ธฐ๋ณธ์ ์ธ ๋ ˆ์ด์•„์›ƒ ๋ฐ ์—ฐ๊ฒฐ - 11.9
  2. ์ธํŠธ๋กœ, Realm - 11.10
  3. ์˜ค๋ฅ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Œ / ์„œ์น˜๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ ๊ตฌํ˜„ ํ•ด์•ผํ•จ - 11.12
  4. ๋‚ ์งœํฌ๋งท, ํ‚ค๋ณด๋“œ, ๊ณต์œ ๊ธฐ๋Šฅ, ๋ฐฑ๋ฒ„ํŠผ์‹œ ๋ฉ”๋ชจ์ €์žฅ, ๋‘๊ฐœ์˜ ์นผ๋Ÿผ์œผ๋กœ ์ €์žฅ ๋ฏธ๋ฐ˜์˜ - 11.15



แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-15 แ„‹แ…ฉแ„’แ…ฎ 11 27 44

1.MVC ๋””์ž์ธ ํŒจํ„ด

  • ์–ด๋ ดํ’‹์ด ๋“ค์—ˆ๋˜ MVC ๋””์ž์ธ ํŒจํ„ด์ด ๊ธฐ์–ต์ด๋‚˜ ํ•œ ๋ฒˆ ์ ์šฉํ•ด๋ณด๊ณ ์ž ํด๋”๊ด€๋ฆฌ๋ฅผ ํ•ด๋ณด์•˜์œผ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•„์ง์€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

[ MVC ]

  • Model : Realm table๊ณผ MemoviewController์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ €์žฅ
  • View : Storyboard ๋ฐ cell
  • Controller : Memo, Walkthrough,Editor / controller์˜ Extension

๊ฐœ์ธํ”„๋กœ์ ํŠธ์—์„œ ํ™•์‹คํ•˜๊ฒŒ ์ตํ˜€๋‘๊ณ  MVVM์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•ด๋ณด์ž.

2.๋ฐ์ดํ„ฐ ์ „๋‹ฌ

protocol SendDataDelegate {
    //๊ธฐ๋ณธ
    func textData(title : String,content : String)
    //๊ณ ์ • + ๋ฉ”๋ชจ
    func textDataTag(title : String,content : String,tagging : Int)
    //์„œ์น˜
    func textDataId(title : String,content : String,id : ObjectId)
    
}
  • ์ƒ๋‹นํžˆ ์• ๋ฅผ ๋จน์ธ ๋ถ€๋ถ„์ด๋‹ค.
  • ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฅผ ์ƒ์„ฑ์‹œ์—๋Š” ๊ฐ€์žฅ ์ƒ์œ„์˜ textData๋ฅผ ์ด์šฉ
  • ๊ณ ์ •๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ๋ฉ”๋ชจ์— ์žˆ์„ ๊ฒฝ์šฐ์—๋Š” textDataTag๋ฅผ ์ด์šฉ
  • ๊ฒ€์ƒ‰์‹œ์—๋Š” textDataId๋ฅผ ์ด์šฉํ–ˆ๋Š”๋ฐ ์ด ๊ฒฝ์šฐ์—๋Š” ์„น์…˜์ด ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— indexPath.section/row๋ฅผ ์ด์šฉํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์›Œ id๊ฐ’์„ ์ด์šฉํ•ด ์ „๋‹ฌํ–ˆ๋‹ค.

3.NumberFormt

func numberFormatter(number: Int) -> String {
        
        let numberFormatter = NumberFormatter()
        numberFormatter.numberStyle = .decimal
        
        return numberFormatter.string(from: NSNumber(value: number))!
    }
  • Date๋ง๊ณ  ์ˆซ์ž๋„ Format์„ ์ •ํ•ด์ค„์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ•จ์ˆ˜

4.๋ ˆ์ด๋ธ”์˜ ์ผ๋ถ€๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

 let attributtedString = NSMutableAttributedString(string: cell.titleLabel.text!)
            attributtedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red, range: (cell.titleLabel.text! as NSString).range(of:"\(searchController.searchBar.text!)"))
            cell.titleLabel.attributedText = attributtedString



5.LeadingSwipe ํ•จ์ˆ˜

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {}
  • ๊นŒ๋จน์ง€ ๋ง์ž๐Ÿ˜‚

6.์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒ˜์Œ ๊ตฌ๋™์‹œ ํ™•์ธ ํ•จ์ˆ˜

//์ฒ˜์Œ์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธ
  func firstLogInCheck(){
      //๋‘๋ฒˆ์ด์ƒ ์‹คํ–‰
      if userDefaults.bool(forKey: "FirstLogIn") { return }
      //์ฒ˜์Œ ์‹คํ–‰
      userDefaults.set(true,forKey: "FirstLogIn")

      //์ฒ˜์Œ์ด๋ฏ€๋กœ ํŠœํ† ๋ฆฌ์–ผ ์•ˆ๋‚ด
      let storyboard = UIStoryboard(name: "walkthrough", bundle: nil)
      let vc = storyboard.instantiateViewController(withIdentifier: "walkthrough") as! WalkthroughViewController
      //overFullScreen์ด์—ฌ์•ผ ๋ผ์ดํ”„์‚ฌ์ดํด ์•ˆ๊ฒน์นœ๋‹ค!
      vc.modalPresentationStyle = .overFullScreen

      self.present(vc, animated: true, completion: nil)
  }
  • UserDefaults๋ฅผ ์ด์šฉํ•ด ํ‚ค์™€ Bool ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด๋‘๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ‚ค๋ฉด ํ™•์ธํ•œ๋‹ค.
  • ๋‹ค๋งŒ Appdelegate๋ฅผ ํ™œ์šฉํ•˜๋ฉด ํ•œ๋ฒˆ๋งŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ธ€์„ ๋ณธ ๊ฒƒ ๊ฐ™์•„ ํ™•์ธํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

7.๊ณ ์ •๋œ ๋ฉ”๋ชจ์™€ ๋ฉ”๋ชจ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํผํ‹ฐ

 //๊ณ ์ •๋œ ๋ฉ”๋ชจ์™€ ๋ฉ”๋ชจ๋กœ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํผํ‹ฐ
    var classifications : [String] {
        return Set(Works.value(forKeyPath: "classification") as! [String]).sorted()
    }
  • indexPath.section / indexPath.row๋ฅผ ์ด์šฉํ•ด์„œ ๋ถ„๋ฆฌ๋˜๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ • ์ž์ฒด๋Š” ์‰ฌ์› ์œผ๋‚˜ indexPath.row๊ฐ€ ๊ฒน์น˜๊ฒŒ ๋˜์–ด ๊ณ ์ •๋œ ๋ฉ”๋ชจ์˜ ๊ฐ’ ํ˜น์€ ๋ฉ”๋ชจ์˜ ๊ฐ’์ด ํ˜ผ๋™๋˜์–ด ํ‘œ์‹œ๋˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์—ˆ๋‹ค.
  • Realm์— classification์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  String ํƒ€์ž…์œผ๋กœ '๊ณ ์ •๋œ ๋ฉ”๋ชจ'์™€ '๋ฉ”๋ชจ'๋กœ ๋‚˜๋ˆ„๊ณ  ์œ„์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ” ๋ทฐ์— ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.
  • ์ƒ๋‹นํžˆ ์˜ค๋žœ์‹œ๊ฐ„ ์• ๋จน์—ˆ๋‹ค.. ์•„์ง๋„ ๋ถ€๋“ค๋ถ€๋“คํ•˜๋‹ค..

[์ค‘๊ฐ„ํ‰] : ์ฒ˜์Œ์œผ๋กœ ํ•ด๋ณด๋Š” ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ ์˜€์ง€๋งŒ ์•„์ง๋„ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๊ณ  ๋˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ์ถ”ํ›„์— ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋˜๊ฐ€๊ฑฐ๋‚˜ ์‹œ๊ฐ„์ด ๋‚ ๋•Œ๋งˆ๋‹ค ์ˆ˜์ •ํ•ด์•ผ ๊ฒ ๋‹ค๐Ÿƒ๐Ÿปโ€โ™‚๏ธ



๊ธฐ๋Šฅ๊ตฌํ˜„ ์˜์ƒ ๋ฐ ์Šคํฌ๋ฆฐ์ƒท



ezgif com-gif-maker

About


Languages

Language:Swift 100.0%