After a couple of releases focused on bug fixes and usability improvements I’m pumped to be working on the first feature update. 2019.6 will focus on adding two of the most requested features: – OPML Import / Export.– Default mix of feeds for new users. In retrospect I should have absolutely shipped with OPML support …
Author Archives: mmv
Choosing the Right App to Develop
Over the course of my 8 years developing apps on the side I’ve shipped 5 apps. Deciding what to work on and creating a new project in Xcode is about one of the best feelings in the development world. Everything seems possible, there’s so many ideas to test and none of the complexity is yet …
An experiment….
After a recent conversation I’ve decided to try something new with this blog. An experiment… For the next few weeks, every Sunday, I’ll be sharing the experiences of developing apps on the side: the challenges , the successes, the struggles… I’ll also be sharing details on what I’m working on, why I’m doing it and …
NewsWave Released
During the last couple of months I’ve been working on a new take on the RSS Reader. With so many options out there (NetNewsWire, Unread, Reeder….), why would I go and develop another one? The main reason is I wanted to create an RSS reader that would be extremely accessible to use for the average user. …
Create UIButton in code (swift)
Adding and customizing UIButtons in storyboard is extremely easy (and I would recommend doing it that way whenever possible), but what if you need to do it yourself in code? The process takes only couple of lines of code, but it can escalate quickly if you add multiple buttons. To keep code clean I’ve created …
Animating UIView by changing constraints
That’s one of the most fun and easiest animations you can do. First, let’s make sure we know what constraint to change: you’ll have to make sure you either have the constraint as an @IBOutlet or -if you’ve added in code- make sure you add an identifier to it. Then you’ll trigger a constant change …
Opening links in Safari / Embedded Safari – iOS
In iOS you can either do it with a push: let safariVC = SFSafariViewController(url: URL(string: “www.google.com”)!, configuration: .init()) present(safariVC, animated: true, completion: nil) or directly in the Safari app: UIApplication.shared.open(URL(string:“www.google.com”)!, options: [:]) { (_) in } Very practical, Marc
Reloading/inserting Dynamic Height cells and keeping Scroll position
For an upcoming app I had to insert Dynamic Height cells while keeping the tableView offset -scrolling position- constant. This would typically be a trivial issue, but given that when using Dynamic Height cells nor the contentSize nor the offset can be trusted it’s a bit more tricky than it seems… What I was trying …
Continue reading “Reloading/inserting Dynamic Height cells and keeping Scroll position”
Measuring function execution time
This is a very quick one. For an app I’m working on I wanted to measure how long it took a given function to complete. I typically don’t do this, as most functions are very fast, but this one involved a server fetch and some background processing. Anyhow, I’m getting distracted, here it is -easy …
Dealing with UIGraphics ImageContext ‘Memory Leaks’
Here’s the code to change the image size of an image in iOS so that then it can be saved with smaller footprint: let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height) // Actually do the resizing to the rect using the ImageContext stuff UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0) image.draw(in: rect) …
Continue reading “Dealing with UIGraphics ImageContext ‘Memory Leaks’”