본문 바로가기

전체 글380

Node js Socket IO 예제 Node js Socket IO 예제 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var userList = []; var typingUsers = {}; app.get('/', function(req, res){ res.send('AppCoda - SocketChat Server'); }); http.listen(3000, function(){ console.log('Listening on *:3000'); }); //소켓 연결 완료 io.on('connection', function(clientSocket){ console.log('a user conn.. 2021. 3. 31.
swift socket io 예제 swift socket io 예제 ✅ 스토리보드 ✅사용 기술 MainQue CustomCell xib file Dictionary Socket IO 클로저 prepareForSegue UITextViewDelegate UIGestureRecognizerDelegate timer notificationCenter UIView.animate 키보드 델리게이트 메소드 ✅ 소켓 매니저 클래스 SocketIOManager.swift [1]소캣연결시도 [2]소캣연결종료 [3]유저채팅방에 연결 [4]유저 채팅방에서 삭제 [5]메시지발송 [6]유저 입장, 퇴장 타이핑 유무 등록 [7]notificationcenter import UIKit import SocketIO class SocketIOManager: NSObj.. 2021. 3. 31.
swift fmdb 예제 1 - feat: tableview , typealias , 튜플, do catch swift fmdb 예제 1 - feat: tableview , typealias , 튜플, do catch 준비 먼저 fmdb 라이브러리를 가져온다. xcode 에서 source control -> clone... 클릭 후 , fmdb git 주소를 적어주고 프로젝트를 복사한다음, fmdb 파일만 프로젝트로 가져온다. 그리고 위의 사진처럼 브릿징 파일을 만들어주고, 아래 그림처럼 build settings 에서 브릿징 파일을 연결해 준다. 스토리보드 부서관련 DAO 1.DepartRecord 튜플 선언 2.FMDatabase 변수 선언 3.init 4.부서 목록 읽어오기 5.단일 부서 읽어오기 6.부서정보 추가 7.부서정보 삭제 import Foundation class DepartmentDAO { /.. 2021. 3. 30.
swift sqlite 예제 feat : FileManager, Bundle.main, defer swift sqlite 예제 feat : FileManager, Bundle.main, defer sqlite import import SQLite3 주요 구문 var db : OpaquePointer? = nil //SQLite 연결 정보 - 구조체 var stmt : OpaquePointer? = nil //컴파일된 SQL을 담을 객체 sqlite3_open(dbPath, &db) // db연결함수 - db 객체가 생성 sqlite3_prepare(db, sql, -1, &stmt, nil) //구문을 전달 준비 - 컴파일된 sql 구문 객체가 생성됨 sqlite3_step(stmt) //컴파일된 sql 객체를 db에 전달 - stmt에는 db 연결 정보와 컴파일된 SQL 객체가 포함되어 있다 //위.. 2021. 3. 30.
swift MVVM 패턴 예제 완성화면 모델 import UIKit class Dog { //개품종 enum Breed { case pug case poodle } let name : String //이름 let birthday : Date //생일 let breed:Breed //품종 let image : UIImage //이미지 init(name: String, birthday: Date, breed: Dog.Breed, image: UIImage) { self.name = name self.birthday = birthday self.breed = breed self.image = image } } 뷰 import UIKit class DogView: UIView { // 뷰를 스토리보드로 만들지 않고 코드로 작성시 사용 //이.. 2021. 3. 29.
swift AutoLayout 7 - AutoLayout Landscape 이슈 ● 들어가기 전 이번 포스팅에서는 Landscape을 했을때 발생하는 AutoLayout 이슈에 대해서 살펴보자. 글로 쓰는 것보다 사진을 바로 보자. 대충 이런 현상이다. 세로였을때 바로 나오다가 Landscape했을 때 위와 같이 두 페이지가 반반 씩 동시에 나오는 이슈가 발생한다. viewWillTransition 함수를 override 해서 해결해보자. ● 실습순서 1.viewWillTransition 함수 override 2.소스코드 리팩토링 ● viewWillTransition 함수 아래의 viewWillTransitoin 함수는 view가 바뀔때 작동되는 함수다. 아래의 코드를 SwipingController 제일 윗 부분에 작성한다. override func viewWillTransitio.. 2021. 3. 29.
swift AutoLayout 6 - UIButton 이벤트와 UIPageControl속성 ● 들어가기 전 이번 포스팅에서는 이전 포스팅에서 만들었던 UIButton에 이벤트를 걸어서 "이전버튼"을 누르면 이전페이지로 이동시키고, "다음버튼"을 누르면 다음 버튼으로 이동시키는 코드를 작성해보자. 그리고 페이지가 이동할때 UIPageControl의 현재페이지를 보여주는 색깔점 표시도 변경시켜보자. ● 실습순서 1. ViewController.swift에 있는 UIButton객체와 UIPageControl객체와 autolayout을 설정한 함수 가져오기 2. 버튼에 이벤트 걸어주기 3.pageControl 설정 4.scrollViewWillEndDragging 함수 구현 ● ViewController에 있는 객체들과 autolayout 설정 함수 가져오기 ViewController.swift에 있.. 2021. 3. 29.
swift AutoLayout 5 - MVC 패턴 ● 들어가기 전 이번 포스팅에서는 mvc 패턴에 대해서 살펴보겠다. mvc 패턴은 아주아주 간단하게 말해서 어플리케이션을 만들때, m 모델단, v 화면단, c 컨트롤단으로 구분지어서 소스코드를 제작하는 방법이다. 반드시는 아니지만 굳이 구분을 하자면 프론트 엔드 즉, 디자이너는 v 부분 소스코드를 짜고, 개발자는 c 부분 소스코드를 짜고, db모델러는 m 부분을 담당한다.(쉽게 설명해서) 이러는 이유는 앞에서도 설명했는데, 페이지 하나에 화면소스, 컨트롤소스, 모델 소스를 짜버리면 나중에 유지보수하기가 힘들고 개발할때도 복잡해서 효율성이 떨어지기 때문이다. 아주 간단하게 설명하면 이렇다. 그렇다면 ios에서 mvc가 어떻게 활용되는지 보자. ● 실습순서 1.모델객체 만들기 2.모델 객체를 컨트롤 부분에서.. 2021. 3. 29.
swift AutoLayout 4 -UICollectionViewController 활용 ● 들어가기 전 이번포스팅에서는 UICollectionViewController를 이용해서 페이지를 좌우로 넘겨주는 기능을 살펴보자. ● 실습순서 1.rootview를 UICollectionViewController를 상속받는 클래스로 지정해주기 2. UICollectionViewController를 상속받는 클래스 지정 3. UICollectionViewController의 Cell을 꾸며줄 Customcell 만들기 4.ViewController에 있던 소스 UICollectionViewController를 상속받는 클래스로 옮기기 ● rootview 지정해주기 AppDelegate파일로 들어와서 window 객체를 초기화 하는 코드를 작성해준다. 각 코드에 대한 설명은 주석을 달아놓았다. func .. 2021. 3. 29.