What language is F-Bar written in?

2017-05-03

Every once in a while I get questions about which languages I used to author F-Bar and GitFTP-Deploy.

I wrote F-Bar in 100% Swift 3 and GitFTP-Deploy has a mix of Objective-C and Swift. The reason is that Swift was not mature when it started writing the first classes of GitFTP-Deploy.

There are other techniques to write mobile and desktop apps today. Electron is one of the more popular. To be honest, I have not written any major apps in Electron or any other hybrid frameworks.

The objective is compelling to be able to write a fully cross-platform app that shares codebase and can run on macOS, Windows, and Linux. However, in my research before starting my projects, there are several significant downsides with Electron.

Memory usage

An Electron app is essentially a fully-featured Chromium browser and a Node.js process that communicate via IPC. The is, unfortunately, a show stopper for a small and long-time running menubar-app. GitFTP-Deploy is shuffling around thousands of files with tiny memory footprint.

Large builds

Packaged Electron apps contain everything they need to run, so they're typically quite large. The “Hello World” app for Electron weighs 115 MB. This overhead is not really a problem for large apps like Visual Studio Code. It does pose a problem for smaller apps that would like to use the Electron model. A typical desktop user may have a dozen utilities open. If each of these has a copy of the whole Electron stack in memory, it wastes over a gigabyte for essentially nothing.

Not truly native

The super snappy hierarchal menus native in macOS is not available in a cross-platform environment.

By all means, I don’t want do dismiss Electron, it’s an amazing project, but it’s still important to choose the right tool for a particular job. I may case if think that going native and Swift gives me more control and F-Bar is a lot less conservative with the memory.


F-Bar 1.2 released. Better monitoring

2017-04-12

The #2 most requested feature is here: the ability to disable monitoring for individual sites. Like this, you can turn off for the site with the name ”default” or if the site is behind a basic auth.

Click "Preferences…"

Bild

Click ”More Settings…”

More settings

Check the checkbox, done. Profit! :-)

More settings

Another typical scenario is that the name of the site, defined in Laravel Forge, is not the same as the public URL. Forge is still managing the site as usual, but you would like to monitor the site. With URL Alias you can do this with ease.

Bild

Nice to have features

Fixed so that you can save configurations without closing configuration dialog. Faster workflow, if you want to test back and forth.

Also, I added a warning if you try to close the dialog with unsaved changes.

I have been overwhelmed by all your good feedback and reports, if you have any, please don’t hesitate to drop me an email

Bugfixes

  • Crash in add API-keys dialog is fixed
  • Fixed a memory leak

F-Bar product page


Troubleshoot Nginx, the first step

2017-04-06

Suddenly Nginx won't start. Where to I begin to troubleshoot. First, check the configuration file for Nginx.

sudo nginx -t

Aha, a misplaced character a line 52

Error screen

Using Laravel Forge and F-Bar together it's easy to find the error around line 52, a misplaced }

F-Bar

Done!

Profit!


F-Bar 1.1 - multi-account support

2017-04-03

New features

  • Multi-account support! Add as how many you want, and re-order them as you like.
  • Line-numbering for configuration windows and log viewers.
  • Direct link to Laravel Forge from each site.
  • Better validation when entering an API-key. Trimming of white spaces at the end.

Bugfixes

  • Resizing of configuration and log viewer window work as expected
  • Fixed memory leaks
  • A 20-second delay before monitoring starts if enabled. Let’s the computer connect to Wifi.
  • Bigger fonts
  • Turned off spell check on configuration windows

What's next?

Since multi-account has been the number one request, I have prioritized this one. Next up is the ability to

  • Exclude some sites from monitoring
  • Put an ”alias” of a site. The site ”name” that the Forge API provides may not be the actual domain used externally.
  • ”Alias” of a server. If you are connecting to servers from an internal IP.

Download


F-Bar is featured on Laravel News

2017-03-21

Laravel News did a great write up about F-Bar. Check out their site, there is a lot if you are interested in Laravel

https://laravel-news.com/fbar-laravel-forge-mac-menubar


Subscribe to blog updates