Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Crowdin updates #1719

Merged
merged 138 commits into from
Aug 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
2b4f2ff
New translations encrypteasy.mdx (Japanese)
leaanthony Aug 9, 2022
f11e6a4
New translations encrypteasy.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
5735a77
New translations ytd.mdx (Japanese)
leaanthony Aug 9, 2022
e8242cc
New translations wombat.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
60c5220
New translations wombat.mdx (Japanese)
leaanthony Aug 9, 2022
24d6649
New translations wally.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
041f93c
New translations wally.mdx (Japanese)
leaanthony Aug 9, 2022
3ac9875
New translations surge.mdx (Japanese)
leaanthony Aug 9, 2022
709b796
New translations riftshare.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
935badc
New translations riftshare.mdx (Japanese)
leaanthony Aug 9, 2022
2397bb8
New translations surge.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
c0318a1
New translations restic-browser.mdx (Japanese)
leaanthony Aug 9, 2022
da9a105
New translations portfall.mdx (Japanese)
leaanthony Aug 9, 2022
47d7319
New translations optimus.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
4ba76d0
New translations optimus.mdx (Japanese)
leaanthony Aug 9, 2022
129a29e
New translations october.mdx (Japanese)
leaanthony Aug 9, 2022
6ec6d37
New translations mollywallet.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
8b3c2a8
New translations mollywallet.mdx (Japanese)
leaanthony Aug 9, 2022
b61353e
New translations filehound.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
061a4cc
New translations filehound.mdx (Japanese)
leaanthony Aug 9, 2022
75e6f14
New translations testing.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
9787130
New translations helping-others.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
389f5dc
New translations setting-up-a-dev-environment.mdx (Japanese)
leaanthony Aug 9, 2022
7bb6772
New translations setting-up-a-dev-environment.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
1165788
New translations testing.mdx (Japanese)
leaanthony Aug 9, 2022
e52e713
New translations building.mdx (Japanese)
leaanthony Aug 9, 2022
57ebb4a
New translations ways-of-contributing.mdx (Japanese)
leaanthony Aug 9, 2022
7f7f2e4
New translations ways-of-contributing.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
a58ec46
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
bca4afd
New translations fixing-bugs.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
8de9b0b
New translations helping-others.mdx (Japanese)
leaanthony Aug 9, 2022
13aa9dd
New translations fixing-bugs.mdx (Japanese)
leaanthony Aug 9, 2022
3dfe4f5
New translations documenting.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
398238e
New translations documenting.mdx (Japanese)
leaanthony Aug 9, 2022
159854d
New translations developing-new-features.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
d3c7a88
New translations developing-new-features.mdx (Japanese)
leaanthony Aug 9, 2022
63cc99e
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
0835301
New translations templates.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
f79abbc
New translations templates.mdx (Japanese)
leaanthony Aug 9, 2022
6fdf99e
New translations links.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
2cc41af
New translations links.mdx (Japanese)
leaanthony Aug 9, 2022
48f50d9
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
c5ef2b2
New translations ytd.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
533eae7
New translations building.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
96998bc
New translations development.mdx (Japanese)
leaanthony Aug 9, 2022
25592a5
New translations troubleshooting.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
2749d3b
New translations overscroll.mdx (Japanese)
leaanthony Aug 9, 2022
af58482
New translations overscroll.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
1280bf0
New translations routing.mdx (Japanese)
leaanthony Aug 9, 2022
2e13418
New translations routing.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
01e62c4
New translations signing.mdx (Japanese)
leaanthony Aug 9, 2022
44923ef
New translations signing.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
edc456b
New translations templates.mdx (Japanese)
leaanthony Aug 9, 2022
c889839
New translations templates.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
ad1c30c
New translations troubleshooting.mdx (Japanese)
leaanthony Aug 9, 2022
1f14562
New translations windows-installer.mdx (Japanese)
leaanthony Aug 9, 2022
41d6e69
New translations mouse-buttons.mdx (Japanese)
leaanthony Aug 9, 2022
ee1b86f
New translations windows-installer.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
a57dd37
New translations windows.mdx (Japanese)
leaanthony Aug 9, 2022
1fd06b0
New translations windows.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
dd075f0
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
4e35327
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
eaac00b
New translations browser.mdx (Japanese)
leaanthony Aug 9, 2022
38e6647
New translations browser.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
878d6ca
New translations dialog.mdx (Japanese)
leaanthony Aug 9, 2022
04587aa
New translations mouse-buttons.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
aad5ebd
New translations migrating.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
34797d1
New translations development.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
7e11444
New translations dynamic-assets.mdx (Japanese)
leaanthony Aug 9, 2022
f1d4a85
New translations firstproject.mdx (Japanese)
leaanthony Aug 9, 2022
48e6a84
New translations firstproject.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
818b16b
New translations installation.mdx (Japanese)
leaanthony Aug 9, 2022
29e4a2d
New translations installation.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
b8a740a
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
8d1db0c
New translations application-development.mdx (Japanese)
leaanthony Aug 9, 2022
ea8d8b1
New translations application-development.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
9e7aa83
New translations bleeding-edge.mdx (Japanese)
leaanthony Aug 9, 2022
8d231b7
New translations bleeding-edge.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
85418e5
New translations dynamic-assets.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
8a28a2d
New translations migrating.mdx (Japanese)
leaanthony Aug 9, 2022
8242ca4
New translations frameless.mdx (Japanese)
leaanthony Aug 9, 2022
1bd10f3
New translations frameless.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
e1c74e3
New translations frontend.mdx (Japanese)
leaanthony Aug 9, 2022
8ab7660
New translations frontend.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
822e326
New translations ides.mdx (Japanese)
leaanthony Aug 9, 2022
4ee9433
New translations ides.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
55720b6
New translations linux-distro-support.mdx (Japanese)
leaanthony Aug 9, 2022
2af2ffc
New translations linux-distro-support.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
4049b3a
New translations manual-builds.mdx (Japanese)
leaanthony Aug 9, 2022
9c6764c
New translations manual-builds.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
3c16faf
New translations dialog.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
17ee127
New translations events.mdx (Japanese)
leaanthony Aug 9, 2022
6dd367b
New translations authors.yml (Chinese Simplified)
leaanthony Aug 9, 2022
3921cb3
New translations introduction.mdx (Japanese)
leaanthony Aug 9, 2022
e68c087
New translations introduction.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
b0fda15
New translations 2021-09-27-v2-beta1-release-notes.mdx (Japanese)
leaanthony Aug 9, 2022
edb5484
New translations 2021-09-27-v2-beta1-release-notes.mdx (Chinese Simpl…
leaanthony Aug 9, 2022
66e04e8
New translations 2021-11-08-v2-beta2-release-notes.mdx (Japanese)
leaanthony Aug 9, 2022
0e0ad4e
New translations 2021-11-08-v2-beta2-release-notes.mdx (Chinese Simpl…
leaanthony Aug 9, 2022
51a4527
New translations 2022-02-22-v2-beta3-release-notes.mdx (Japanese)
leaanthony Aug 9, 2022
1a0c6f1
New translations 2022-02-22-v2-beta3-release-notes.mdx (Chinese Simpl…
leaanthony Aug 9, 2022
92484c3
New translations authors.yml (Japanese)
leaanthony Aug 9, 2022
b753a28
New translations changelog.md (Japanese)
leaanthony Aug 9, 2022
d1df4dd
New translations howdoesitwork.mdx (Japanese)
leaanthony Aug 9, 2022
7be93df
New translations changelog.md (Chinese Simplified)
leaanthony Aug 9, 2022
86c28e4
New translations community-guide.md (Japanese)
leaanthony Aug 9, 2022
3acc122
New translations community-guide.md (Chinese Simplified)
leaanthony Aug 9, 2022
52deea5
New translations credits.mdx (Japanese)
leaanthony Aug 9, 2022
4e0fdc7
New translations credits.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
f006a3b
New translations faq.md (Japanese)
leaanthony Aug 9, 2022
86cf60d
New translations markdown-page.md (Japanese)
leaanthony Aug 9, 2022
aafb870
New translations markdown-page.md (Chinese Simplified)
leaanthony Aug 9, 2022
667e970
New translations stats.mdx (Japanese)
leaanthony Aug 9, 2022
5cf37d1
New translations howdoesitwork.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
6ef1966
New translations _category_.json (Chinese Simplified)
leaanthony Aug 9, 2022
4172e4e
New translations events.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
981bbcd
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
7671b3a
New translations intro.mdx (Japanese)
leaanthony Aug 9, 2022
7fd494d
New translations intro.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
cb374a2
New translations log.mdx (Japanese)
leaanthony Aug 9, 2022
9bb6348
New translations log.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
ebecae5
New translations menu.mdx (Japanese)
leaanthony Aug 9, 2022
1436513
New translations menu.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
48c3fa2
New translations window.mdx (Japanese)
leaanthony Aug 9, 2022
cae3201
New translations window.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
5715951
New translations cli.mdx (Japanese)
leaanthony Aug 9, 2022
375d973
New translations cli.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
003c4e0
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
224a68b
New translations menus.mdx (Japanese)
leaanthony Aug 9, 2022
cf511a4
New translations menus.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
dc46a73
New translations options.mdx (Japanese)
leaanthony Aug 9, 2022
2c558f6
New translations options.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
803b662
New translations project-config.mdx (Japanese)
leaanthony Aug 9, 2022
e599dee
New translations project-config.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
b591b35
New translations _category_.json (Japanese)
leaanthony Aug 9, 2022
69d9edc
New translations helloworld.mdx (Japanese)
leaanthony Aug 9, 2022
f727ecc
New translations helloworld.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
7745d6d
New translations stats.mdx (Chinese Simplified)
leaanthony Aug 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
slug: wails-v2-beta-for-windows
title: Wails v2 Beta for Windows
authors:
- leaanthony
tags:
- wails
- v2
---


<div class="text--center">
<img src="/img/wails.png" width="40%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>


When I first announced Wails on Reddit, just over 2 years ago from a train in Sydney, I did not expect it to get much attention. A few days later, a prolific tech vlogger released a tutorial video, gave it a positive review and from that point on, interest in the project has skyrocketed.

It was clear that people were excited about adding web frontends to their Go projects, and almost immediately pushed the project beyond the proof of concept that I had created. At the time, Wails used the [webview](https://github.com/webview/webview) project to handle the frontend, and the only option for Windows was the IE11 renderer. Many bug reports were rooted in this limitation: poor JavaScript/CSS support and no dev tools to debug it. This was a frustrating development experience but there wasn't much that could have been done to rectify it.

For a long time, I'd firmly believed that Microsoft would eventually have to sort out their browser situation. The world was moving on, frontend development was booming and IE wasn't cutting it. When Microsoft announced the move to using Chromium as the basis for their new browser direction, I knew it was only a matter of time until Wails could use it, and move the Windows developer experience to the next level.

Today, I am pleased to announce: **Wails v2 Beta for Windows**! There's a huge amount to unpack in this release, so grab a drink, take a seat and we'll begin...

### No CGO Dependency!

No, I'm not joking: *No* *CGO* *dependency* 🤯! The thing about Windows is that, unlike MacOS and Linux, it doesn't come with a default compiler. In addition, CGO requires a mingw compiler and there's a ton of different installation options. Removing the CGO requirement has massively simplified setup, as well as making debugging an awful lot easier. Whilst I have put a fair bit of effort in getting this working, the majority of the credit should go to [John Chadwick](https://github.com/jchv) for not only starting a couple of projects to make this possible, but also being open to someone taking those projects and building on them. Credit also to [Tad Vizbaras](https://github.com/tadvi) whose [winc](https://github.com/tadvi/winc) project started me down this path.

### WebView2 Chromium Renderer

<div class="text--center">
<img src="/img/devtools.png" width="75%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

Finally, Windows developers get a first class rendering engine for their applications! Gone are the days of contorting your frontend code to work on Windows. On top of that, you get a first-class developer tools experience!

The WebView2 component does, however, have a requirement to have the `WebView2Loader.dll` sitting alongside the binary. This makes distribution just that little bit more painful than we gophers are used to. All solutions and libraries (that I know of) that use WebView2 have this dependency.

However, I'm really excited to announce that Wails applications *have no such requirement*! Thanks to the wizardry of [John Chadwick](https://github.com/jchv), we are able to bundle this dll inside the binary and get Windows to load it as if it were present on disk.

Gophers rejoice! The single binary dream lives on!

### New Features

<div class="text--center">
<img src="/img/wails-menus.png" width="60%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

There were a lot of requests for native menu support. Wails has finally got you covered. Application menus are now available and include support for most native menu features. This includes standard menu items, checkboxes, radio groups, submenus and separators.

There were a huge number of requests in v1 for the ability to have greater control of the window itself. I'm happy to announce that there's new runtime APIs specifically for this. It's feature-rich and supports multi-monitor configurations. There is also an improved dialogs API: Now, you can have modern, native dialogs with rich configuration to cater for all your dialog needs.

There is now the option to generate IDE configuration along with your project. This means that if you open your project in a supported IDE, it will already be configured for building and debugging your application. Currently VSCode is supported but we hope to support other IDEs such as Goland soon.

<div class="text--center">
<img src="/img/vscode.png" width="100%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

### No requirement to bundle assets

A huge pain-point of v1 was the need to condense your entire application down to single JS & CSS files. I'm happy to announce that for v2, there is no requirement to bundle assets, in any way, shape or form. Want to load a local image? Use an `<img>` tag with a local src path. Want to use a cool font? Copy it in and add the path to it in your CSS.

> Wow, that sounds like a webserver...

Yes, it works just like a webserver, except it isn't.

> So how do I include my assets?

You just pass a single `embed.FS` that contains all your assets into your application configuration. They don't even need to be in the top directory - Wails will just work it out for you.

### New Development Experience

<div class="text--center">
<img src="/img/browser.png" width="60%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>


Now that assets don't need to be bundled, it's enabled a whole new development experience. The new `wails dev` command will build and run your application, but instead of using the assets in the `embed.FS`, it loads them directly from disk.

It also provides the additional features:

- Hot reload - Any changes to frontend assets will trigger and auto reload of the application frontend
- Auto rebuild - Any changes to your Go code will rebuild and relaunch your application

In addition to this, a webserver will start on port 34115. This will serve your application to any browser that connects to it. All connected web browsers will respond to system events like hot reload on asset change.

In Go, we are used to dealing with structs in our applications. It's often useful to send structs to our frontend and use them as state in our application. In v1, this was a very manual process and a bit of a burden on the developer. I'm happy to announce that in v2, any application run in dev mode will automatically generate Typescript models for all structs that are input or output parameters to bound methods. This enables seamless interchange of data models between the two worlds.

In addition to this, another JS module is dynamically generated wrapping all your bound methods. This provides JSDoc for your methods, providing code completion and hinting in your IDE. It's really cool when you get data models auto-imported when hitting tab in an auto-generated module wrapping your Go code!

### Remote Templates

<div class="text--center">
<img src="/img/remote.png" width="60%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

Getting an application up and running quickly was always a key goal for the Wails project. When we launched, we tried to cover a lot of the modern frameworks at the time: react, vue and angular. The world of frontend development is very opinionated, fast moving and hard to keep on top of! As a result, we found our base templates getting out of date pretty quickly and this caused a maintenance headache. It also meant that we didn't have cool modern templates for the latest and greatest tech stacks.

With v2, I wanted to empower the community by giving you the ability to create and host templates yourselves, rather than rely on the Wails project. So now you can create projects using community supported templates! I hope this will inspire developers to create a vibrant ecosystem of project templates. I'm really quite excited about what our developer community can create!

### In Conclusion

Wails v2 represents a new foundation for the project. The aim of this release is to get feedback on the new approach, and to iron out any bugs before a full release. Your input would be most welcome. Please direct any feedback to the [v2 Beta](https://github.com/wailsapp/wails/discussions/828) discussion board.

There were many twists and turns, pivots and u-turns to get to this point. This was due partly to early technical decisions that needed changing, and partly because some core problems we had spent time building workarounds for were fixed upstream: Go’s embed feature is a good example. Fortunately, everything came together at the right time, and today we have the very best solution that we can have. I believe the wait has been worth it - this would not have been possible even 2 months ago.

I also need to give a huge thank you :pray: to the following people because without them, this release just wouldn't exist:

- [Misitebao](https://github.com/misitebao) - An absolute workhorse on the Chinese translations and an incredible bug finder.
- [John Chadwick](https://github.com/jchv) - His amazing work on [go-webview2](https://github.com/jchv/go-webview2) and [go-winloader](https://github.com/jchv/go-winloader) have made the Windows version we have today possible.
- [Tad Vizbaras](https://github.com/tadvi) - Experimenting with his [winc](https://github.com/tadvi/winc) project was the first step down the path to a pure Go Wails.
- [Mat Ryer](https://github.com/matryer) - His support, encouragement and feedback has really helped drive the project forward.

And finally, I'd like to give a special thank you to all the [project sponsors](/credits#sponsors), including [JetBrains](https://www.jetbrains.com?from=Wails), whose support drive the project in many ways behind the scenes.

I look forward to seeing what people build with Wails in this next exciting phase of the project!

Lea.

PS: MacOS and Linux users need not feel left out - porting to this new foundation is actively under way and most of the hard work has already been done. Hang in there!

PPS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks!
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
---
slug: wails-v2-beta-for-mac
title: Wails v2 Beta for MacOS
authors:
- leaanthony
tags:
- wails
- v2
---


<div class="text--center">
<img src="/img/wails-mac.png" width="60%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

Today marks the first beta release of Wails v2 for Mac! It's taken quite a while to get to this point and I'm hoping that today's release will give you something that's reasonably useful. There have been a number of twists and turns to get to this point and I'm hoping, with your help, to iron out the crinkles and get the Mac port polished for the final v2 release.

You mean this isn't ready for production? For your use case, it may well be ready, but there are still a number of known issues so keep your eye on [this project board](https://github.com/wailsapp/wails/projects/7) and if you would like to contribute, you'd be very welcome!

So what's new for Wails v2 for Mac vs v1? Hint: It's pretty similar to the Windows Beta :wink:

### New Features

<div class="text--center">
<img src="/img/wails-menus-mac.png" width="80%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

There were a lot of requests for native menu support. Wails has finally got you covered. Application menus are now available and include support for most native menu features. This includes standard menu items, checkboxes, radio groups, submenus and separators.

There were a huge number of requests in v1 for the ability to have greater control of the window itself. I'm happy to announce that there's new runtime APIs specifically for this. It's feature-rich and supports multi-monitor configurations. There is also an improved dialogs API: Now, you can have modern, native dialogs with rich configuration to cater for all your dialog needs.

### Mac Specific Options

In addition to the normal application options, Wails v2 for Mac also brings some Mac extras:

- Make your window all funky and translucent, like all the pretty swift apps!
- Highly customisable titlebar
- We support the NSAppearance options for the application
- Simple config to auto-create an "About" menu

### No requirement to bundle assets

A huge pain-point of v1 was the need to condense your entire application down to single JS & CSS files. I'm happy to announce that for v2, there is no requirement to bundle assets, in any way, shape or form. Want to load a local image? Use an `<img>` tag with a local src path. Want to use a cool font? Copy it in and add the path to it in your CSS.

> Wow, that sounds like a webserver...

Yes, it works just like a webserver, except it isn't.

> So how do I include my assets?

You just pass a single `embed.FS` that contains all your assets into your application configuration. They don't even need to be in the top directory - Wails will just work it out for you.

### New Development Experience

Now that assets don't need to be bundled, it's enabled a whole new development experience. The new `wails dev` command will build and run your application, but instead of using the assets in the `embed.FS`, it loads them directly from disk.

It also provides the additional features:

- Hot reload - Any changes to frontend assets will trigger and auto reload of the application frontend
- Auto rebuild - Any changes to your Go code will rebuild and relaunch your application

In addition to this, a webserver will start on port 34115. This will serve your application to any browser that connects to it. All connected web browsers will respond to system events like hot reload on asset change.

In Go, we are used to dealing with structs in our applications. It's often useful to send structs to our frontend and use them as state in our application. In v1, this was a very manual process and a bit of a burden on the developer. I'm happy to announce that in v2, any application run in dev mode will automatically generate Typescript models for all structs that are input or output parameters to bound methods. This enables seamless interchange of data models between the two worlds.

In addition to this, another JS module is dynamically generated wrapping all your bound methods. This provides JSDoc for your methods, providing code completion and hinting in your IDE. It's really cool when you get data models auto-imported when hitting tab in an auto-generated module wrapping your Go code!

### Remote Templates

<div class="text--center">
<img src="/img/remote-mac.png" width="80%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

Getting an application up and running quickly was always a key goal for the Wails project. When we launched, we tried to cover a lot of the modern frameworks at the time: react, vue and angular. The world of frontend development is very opinionated, fast moving and hard to keep on top of! As a result, we found our base templates getting out of date pretty quickly and this caused a maintenance headache. It also meant that we didn't have cool modern templates for the latest and greatest tech stacks.

With v2, I wanted to empower the community by giving you the ability to create and host templates yourselves, rather than rely on the Wails project. So now you can create projects using community supported templates! I hope this will inspire developers to create a vibrant ecosystem of project templates. I'm really quite excited about what our developer community can create!

### Native M1 Support

Thanks to the amazing support of [Mat Ryer](https://github.com/matryer/), the Wails project now supports M1 native builds:

<div class="text--center">
<img src="/img/build-darwin-arm.png" width="80%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

You can also specify `darwin/amd64` as a target too:

<div class="text--center">
<img src="/img/build-darwin-amd.png" width="80%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

Oh, I almost forgot.... you can also do `darwin/universal`.... :wink:

<div class="text--center">
<img src="/img/build-darwin-universal.png" width="80%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>

### Cross Compilation to Windows

Because Wails v2 for Windows is pure Go, you can target Windows builds without docker.

<div class="text--center">
<img src="/img/build-cross-windows.png" width="80%" style={{"box-shadow": "rgb(255 255 >
</div>

<br/>


### WKWebView Renderer

V1 relied on a (now deprecated) WebView component. V2 uses the most recent WKWebKit component so expect the latest and greatest from Apple.

### In Conclusion

As I'd said in the Windows release notes, Wails v2 represents a new foundation for the project. The aim of this release is to get feedback on the new approach, and to iron out any bugs before a full release. Your input would be most welcome! Please direct any feedback to the [v2 Beta](https://github.com/wailsapp/wails/discussions/828) discussion board.

And finally, I'd like to give a special thank you to all the [project sponsors](/credits#sponsors), including [JetBrains](https://www.jetbrains.com?from=Wails), whose support drive the project in many ways behind the scenes.

I look forward to seeing what people build with Wails in this next exciting phase of the project!

Lea.

PS: Linux users, you're next!

PPS: If you or your company find Wails useful, please consider [sponsoring the project](https://github.com/sponsors/leaanthony). Thanks!
Loading