ionic-team / capacitor

Build cross-platform Native Progressive Web Apps for iOS, Android, and the Web ⚡️

Home Page:https://capacitorjs.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Capacitor 3.0

imhoffd opened this issue · comments

Welcome to the Capacitor 3 planning issue! This issue will be periodically updated up until the launch date (TBD). We've locked this issue, but we highly encourage you to open a discussion if you have questions or suggestions.

🚨 This issue is meant to organize the scope and work for Capacitor 3 and is not intended to be used as a roadmap or guarantee of features.


The Capacitor project will focus on a few key areas of improvement for 3.0:

  • More community involvement. 💖
  • Re-invest in the idea that Capacitor can turn any web app into a native app.
    • We are re-evaluating the core plugins to provide the best experience for the most people.
    • Refactors are underway that improve the performance and stability of the Capacitor core.
  • Developer productivity and experience.
  • Foster a stable, high-quality Public API for apps and plugins.

High-Level Changes

  • Electron as a community-maintained platform. We estimate over 95% of Capacitor devs are targeting iOS and Android, but not Electron. Given this and our limited resources, we decided it makes the most sense to focus on the iOS and Android platforms and leave the Electron platform in the very capable hands of the community. Capacitor 3 will proudly offer the Electron Platform as the first ever community maintained platform for Capacitor.
  • Rethinking Plugins. Core plugins will be pulled out of Capacitor into their own packages (now "official plugins"). See #3227 for details.
  • Programmatic run command. A new npx cap run command should be added that provides a CLI workflow for deploying debug builds to devices. This means IDE usage will no longer be required during day-to-day development. Please note: this is not intended for release builds (#324). See this tracking issue and the corresponding PR: #3599
  • Dynamic Capacitor Config. Capacitor should allow a capacitor.config.{ts,js} file so that configuration can be generated based on environment. Capacitor would run this during sync and generate a capacitor.config.json as normal in each native platform. See this tracking issue and the corresponding PR: #3756
  • Apps should control permissions. To make great native apps, developers need full control over the permission flow. In Capacitor 2, limited control over permissions was offered in the now defunct Permissions plugin. In Capacitor 3, a framework for permissions has been implemented that gives control over permissions offered by official and third-party plugins.
  • More control over included plugins. Controlling which plugins are included in iOS and/or Android is now (optionally) a matter of configuration (see #3762). One key related change is that included plugins are now automatically registered in the Android runtime, just like in iOS (see #3788). Plugins no longer need to be manually registered in MainActivity.java.

Please see the Capacitor 3 Upgrade Guide to read about the implications of these changes in Capacitor apps and plugins.

Updated Rethinking Plugins. We now have an issue for tracking progress of the plugin refactor project: #3227.

Added a link to the Capacitor 3 Upgrade Guide (WIP): #3320

Added a link to the open PR for the new capacitor run command: #3599

Added a link to the open PR for supporting capacitor.config.js/capacitor.config.ts files: #3756

capacitor 3 was released, closing