IOS 용 프로그레시브 웹 앱 솔루션이란?


79

기본 브라우저 인 SAFARI가 아직 프로그레시브 웹 앱을 지원하지 않기 때문에 IOS 장치 용 프로그레시브 웹 앱의 솔루션이 무엇인지 궁금합니다. IOS 대응 물에 대한 대안은 무엇입니까?


1
첫 번째 질문을 축하합니다. 아시다시피 PWA (Progressive Web App)에 대한 많은 필수 조건 중 하나 는 브라우저의 서비스 워커를 지원하는 것입니다. 불행히도 Safari는 서비스 워커를 지원하지 않으므로 유일한 대안은 네이티브 앱 또는 일반 웹 사이트입니다.
José Luis

1
@ JoséLuis에 이어 PWA는 점진적 향상 원칙을 따라야하며 따라서 Safari 및 iOS에서 이전 버전과 호환되어야합니다. 이는 핵심 기능을 계속 사용할 수 있어야하며 브라우저 또는 OS에서 새로운 기능을 사용할 수있게됨에 따라 응용 프로그램이 점진적으로 향상된다는 것을 의미합니다.
Kevin Farrugia

2
아래 내 대답을 참조하십시오. 나는 애플을 부르는 기사를 썼다. 트위터와 해커 뉴스에 큰 충격을주었습니다. 일주일 후 드디어 개발을 시작했습니다!
Greg Blass

2
마지막으로 Apple은 TP에 서비스 워커에 대한 지원을 추가했습니다. 여기 사파리의 PWA 지원에 대한 자세한 읽을 수 medium.com/awebdeveloper/...
aWebDeveloper

1
이것을 너무 광범위하게 닫는 것은 너무 어리석은 일이라고 말해야합니다. 진지하게! 왜? 왜 이만큼 중요한 질문을 닫으시겠습니까? 내 마음을 날려 버립니다.
Greg Blass

답변:


97

"프로그레시브 웹 앱을 지원하는 브라우저"는 실제 용어가 아니며 PWA 자체는 웹 앱이 사용자에게 제공 할 수있는 기능 집합입니다. 따라서 서비스 워커와 앱 매니페스트에만 국한된 것이 아닙니다.

확인 : Baseline PWA Checklist .

이 답변이 생성되는 순간 iOS / Safari에서 PWA를 달성하기 위해 수행 할 수있는 작업은 다음과 같습니다.

  • 사이트는 HTTPS를 통해 제공됩니다.
  • 페이지는 태블릿 및 모바일 장치에서 반응합니다 .✅
  • 시작 URL (적어도)은 오프라인 상태에서로드됩니다 🚫
  • 홈 화면에 추가하기 위해 제공된 메타 데이터 ✅❗️
  • 첫 번째로드는 3G에서도 빠릅니다.
  • 사이트 간 브라우저 작동 ✅
  • 페이지 전환이 네트워크에서 차단되는 것처럼 느껴지지 않습니다 .✅
  • 각 페이지에는 URL이 있습니다 ✅

보시다시피, 페이지가 iOS / Safari에서 오프라인으로 작동 할 수없는 경우에도 거의 모든 것이 작동합니다. 웹 앱을 PWA로 "업그레이드"하면 여전히 큰 이점이 있습니다.

정말로 원하는 것은 "Progressive Web Apps"라는 멋진 제목이 아니라 사용자에게 좋은 경험과 기능을 제공하는 좋은 웹 앱입니다. 이것은 각각의 작은 부분으로 성취 할 수있는 여정이기 때문에 "프로그레시브"라고 불립니다.

"홈 화면에 추가 : Safari에는 apple-mobile-web-app-capable메타 태그에서 호출 되는 "홈 화면 아이콘 "에 대한 자체 사양이 있습니다. Web App Manifest Generator 에는이 메타 태그를 사용하는 iOS 용 폴 백이 있습니다.


7
위에서 언급 한 기능과 '서비스 워커'없이는 빠르고 반응이 빠른 웹 앱을 개발하는 것입니다! 네이티브 앱이 훨씬 더 많습니다 !!
Abhishek Nalin

1
downvote 사용자는 대답은 너무 일반적이다 아이폰 OS에 대한 질문
파리 드 자카 Alnamrouti

홈 화면에 추가하기 위해 제공된 메타 데이터 ✅❗️ 작동하지 않습니다. 자세히 설명해 주시겠습니까?
Profer

76

편집 3 :

2018 년 3 월 30 일에 iOS 용 Safari에서 서비스 작업자가 배송되었습니다!

편집 2 :

Ricky Mondello라는 이름의 Apple 개발자가 2018 년 1 월 24 일 다음과 같이 트윗했습니다.

https://twitter.com/rmondello/status/956256845311590400

"iOS 11.3 및 macOS 10.13.4에는 백그라운드 스크립트로 오프라인 웹 응용 프로그램을 구동 할 수있는 강력한 사양 인 서비스 워커가 포함되어 있습니다. 또한 iOS 11.3은 홈 화면에 웹 응용 프로그램을 추가 할 때 Web App Manifest를 참조합니다."

대박!

아직 푸시 알림은 없지만 여전히 놀라운 소식입니다.

편집하다:

나는 주제에 대해 애플을 부르는 기사를 썼다.

https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-of-the-web-e81b2be29676

해커 뉴스에 게시되었고 트위터에서 좋은 노출을 얻었습니다. 일주일 후, 그들은 그것에 대한 개발을 시작했습니다. 그러니-계속 ​​지켜봐주세요. 드디어 오는 것 같습니다!


원래 답변 :

"따라서 서비스 워커와 앱 매니페스트에만 국한된 것이 아닙니다."

제 생각에는 이것이 바로 서비스 워커라는 PWA의 진정한 의미입니다. 이것이 바로 PWA가 가능하게하는 모든 멋진 일을 할 수있게 해주는 것입니다. 기준선은 오랫동안 달성 할 수 있었고 Google은 기술적으로 기준선 분류로 설정했지만 이러한 것들이 실제로 PWA를 만드는 것은 아닙니다. 그렇지 않으면 내 책에서 일반적인 반응 형 웹 앱입니다.

다음은 Apple이 지원을 거부했기 때문에 모바일 사파리로 여전히 할 수없는 작업 목록입니다 (앱 스토어 비용을 잃게되므로).

  • 앱 로딩 화면 만들기
  • 푸시 알림 사용
  • 오프라인 지원 추가
  • 즉시로드 할 초기 앱 UI 만들기
  • 브라우저 안내 대화 상자를 통해 홈 화면에 프롬프트 설치

받아 들여지는 대답은 실제로 여기에 잘못된 그림을 그립니다. 나는 모바일 사파리에서의 경험과 같은 애플 '네이티브'를 한계까지 밀어 붙 였지만 여전히 꽤 나쁘다. 저는 모바일 사파리의 전체 화면 모드에서 수많은 문제를 경험했으며 Apple은 이에 대해 신경 쓰지 않습니다. 앱 스토어처럼 돈을 벌지 않기 때문에 2 등 시민처럼 취급됩니다.

iOS의 홈 화면에 Twitter의 새롭고 멋진 반응 / redux 기반 모바일 사이트를 추가하면 전체 화면 모드로 열리지 않는다는 것을 알 수 있습니다. 나는 그것이 내가 발견 한 것과 같은 이유 때문이라고 생각한다. 버그는 풍부하고 애플 팀의 아무도 작업하지 않는다.

웹 앱 매니페스트에서 사용할 수 있었던 iOS 전체 화면 모드에서 가능했던 로딩 화면은 해당 주제에 대한 게시물에 대한 포럼에서 Apple의 의견이 전혀없이 작동을 멈췄습니다. 그리고 사용자에게 "이봐, 그냥 공유를 클릭 한 다음 '홈 화면에 추가"로 슬라이드하는 것은 일을 처리해야하는 끔찍한 방법입니다.

슬픈 상황입니다. 현재 승인 된 답변의 목록은 실제로 "Baseline Responsive Web App List"라고합니다.

그리고 여기에있는 질문에 답하기 위해-아니오, 대안이 없으며 할 수있는 일이 없습니다. Apple의 게임을 플레이하고 앱 스토어에 액세스하려면 $ 100를 지불해야하며 완전히 다른 복잡한 프로그래밍 언어를 배우고 완전히 별도의 코드 기반을 유지해야합니다.

클라이언트 프로젝트를 위해 React Native를 배우는데 6 개월을 보냈는데 정말 대단했습니다. 나는 그것을 적극 추천합니다. JavaScript를 사용하여 진정한 네이티브 앱을 만들고 iOS와 Android간에 코드베이스를 공유 할 수 있습니다.

분명히 말하면, 저는 반 애플이 아닙니다. iPhone을 사용하고 Mac에서 개발합니다. 그러나 그들의 비즈니스 전략의 이러한 측면은 분명히 부끄러운 일입니다.


1
저는 Swift / Xcode가 시장에서 사용하기 가장 쉬운 언어 / IDE라고 생각합니다. 그들은 다중 상속과 관련된 많은 문제를 해결하는 최신 개발자 언어와 새로운 패러다임, 프로토콜 지향 프로그래밍을 구축했습니다. 그들이 자신의 제품을 넘어서 사용을 확장하려고 시도하지 않았다는 사실은 부끄러운 일이지만 TypeScript / JavaScript보다 더 복잡하다고 부르는 것은 오해의 소지가 있습니다. 나는 TypeScript가 추악한 언어에 대한 추악한 반창고라고 생각합니다. 대신 웹 브라우저가 신속하게 말했으면합니다.
Ryan Dines

누군가 내 기사에서 나에게 똑같은 것을 언급했습니다. 좀 더 '상세'를 말하도록 편집했습니다. 하지만 당신 말이 맞아요-저는 아마 웹에서 오는 편향적 일 것입니다. 하지만 페이스 북 팀은 네이티브 앱보다 웹에서 5 배 더 빠르게 반복 할 수 있었기 때문에 React Native를 만들었습니다. 그래서 약간의 장점이 있다고 생각합니다.
Greg Blass
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.