[Framework] WebKit

2023. 8. 18. 23:51🍏/Swift

 

Webkit으로 MacOS프로젝트를 개발하게 되면서 알아두어야 할 것에 대해서 정리해보았습니다.

- WebKit is an engine, not a browser. We do not plan to develop or host a full featured web browser based on WebKit. Others are welcome to do so, of course.

웹킷은 브라우저가 아닌 엔진.

 WebKit은 웹 페이지를 렌더링하기 위한 엔진으로, 웹 브라우저나 앱에서 웹 컨텐츠를 표시하는 데 사용되는 핵심 컴포넌트 중 하나. WebKit을 기반으로 한 주요 브라우저로는 Apple의 Safari와 이전 버전의 Google Chrome 등이 있습니다. 

- Webkit은 오픈소스 프로젝트입니다.
- 웹표준을 잘 지원하며, 최적화된 성능을 제공합니다.

 

GitHub - WebKit/WebKit: Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applicatio

Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux. - GitHub - WebKit/WebKit: Home of the WebKit project, the browser...

github.com

 

WebKit | Apple Developer Documentation

Integrate web content seamlessly into your app, and customize content interactions to meet your app’s needs.

developer.apple.com

WebKit 프레임워크를 사용하여 다양한 스타일의 웹 콘텐츠를 앱의 기본 콘텐츠에 통합할 수 있습니다. WebKit은 플랫폼 네이티브 뷰를 제공하고 클래스를 지원하여 콘텐츠에 대한 전체 탐색 환경을 제공합니다:

  • Display rich web content using HTML, CSS, and JavaScript
  • Handle the incremental loading of page content
  • Display multiple MIME types and compound frame elements
  • Navigate between pages of content
  • Manage a forward-back list of recently visited pages

Present a WKWebView object from your custom view hierarchies and load the content you want to display. Use supporting objects to manage cookies, evaluate scripts, control navigation, generate snapshots, and perform text-based searches.

사용자 지정 보기 계층 구조에서 WKWebView 개체를 제시하고 표시하려는 콘텐츠를 로드합니다. 지원 개체를 사용하여 쿠키를 관리하고, 스크립트를 평가하고, 탐색을 제어하고, 스냅샷을 생성하고, 텍스트 기반 검색을 수행할 수 있습니다.

Always call WebKit functions and methods from your app’s main thread or main dispatch queue.

항상 앱의 메인 스레드 또는 메인 디스패치 대기열에서 WebKit 함수 및 메서드를 호출해야합니다.

 

 

WebKit

Open Source Web Browser Engine

webkit.org

 

WKWebView를 중점으로 공식문서를 파헤치며 개발해 나갈 예정입니다.

 


프로젝트 일주일차 WebKit에 관한 개인적인 생각들입니다.
이후 여기 적힌 내용들은 이번 경진대회를 회고하면서 다시 작성될 수 있습니다.

브라우저라고 생각해서 모든 기능들이 구현이 돼있다고 생각했었는데, 제가 잘못 생각했었습니다.
프로젝트에 어울리는 기능들을 생각해내고, 해당 기능들에 대해서 공식문서를 토대로 하나하나 만들어갈 예정입니다.
웹킷에서 해당하는 기능들이 없는줄 알고 JS를 통해서 구현하려고 하던 부분이 많았는데 최대한 프레임워크에서 뒤져보고 없으면 그때가서 고민해보는 방식으로 진행해야 할 것 같습니다.