It’s been a while since the WWDC19 keynote, where Apple introduced a lot of cool stuff not just for iOS users, but also for developers, with a brand new social login called Sign in with Apple being one of them. Since we at Ackee have implemented and use Sign in with Apple in all of our apps which require social login, we have decided to share some of our insights and experience. (more…)
iOS

Our Journey to Generated Projects
The Xcode project file has quite a complicated structure and it brings unnecessary complexity where something simpler could be used instead. Thus we were very intrigued to move to project generation. Project generation has a lot of benefits – not committing Xcode files means fewer merge conflicts (truth be told, merge conflicts have become quite rare now!) and also clearer project settings. Unless you are a wizard 🧙♂️, you probably cannot read a project file fluently (and even if you can, it is still very hard to get familiarized with it).

Part 2: Interacting with Vote Contract Using TezosSwift and Combine
Following up on the first part of this tutorial, in this tutorial we shall see how we can leverage tezosgen to easily interact with our contract in our SwiftUI/Combine codebase. (more…)

Part 1: Creating iOS App With Smart Contract Interaction
Tezos smart contracts have matured a lot – and it’s time to use them in iOS apps, closer to the users’ hands. 😉 Throughout this tutorial we will write a smart contract using SmartPy.io and then move to Xcode and get a hands-on experience with interacting with our contract in Swift using generated code from tezosgen. Note that this tutorial will touch on the most important parts of RateMyTeam app and is not a complete step-by-step tutorial. (more…)

RateMyTeam: PoC Tezos Smart Contract App, Support for Combine
It is my pleasure to announce two new projects we have been working on for the last few months: proof of concept iOS app that interacts with a Tezos smart contract RateMyTeam and tezosgen support for Apple’s Combine framework announced at the last WWDC. (more…)

NSSpain 2019: A Conference Full of Wine and iOS
NSSpain is one of the most well-known iOS conferences in Europe – that had been proven by the fact the tickets had been sold out before even one single speaker was announced. This was my first time at any iOS conference, so I was extremely excited about this whole trip. The talks were divided into two days, 19th and 20th September, so it was a great getaway before the summer ends.

Thanks Apple for the ’19 WWDC
Last few years, the WWDC keynote was mostly about introducing new features into Apple operating systems that were focusing mainly on the end user. It looked like Apple forgot that the letter D in WWDC means Developer. Everything was all about introducing new UI, new gestures or introducing new hardware. We were again and again wondering if something was changing and Apple would come up with some real game changer even for developers and again and again we were a bit disappointed that it never happened. But this year it’s a completely different story. (more…)

How to Deal with Different Environments in Xcode
All our apps are developed in several different environments. Let’s have a look at what we call an environment, what the motivation to have different environments in one app is and what type of inconveniences it could bring. We’ll also unscover a part of our technological stack which helps us to do it the way we do it. ?

Looking Back at DevCon
Programmers and supporters of the Ethereum cryptocurrency have gathered in Prague for the 4th DevCon, official Ethereum Foundation conference. It took place in the Congress Center between 30th of October and 2nd of November 2018 and associated meetups took place also at our Danube House within the wider Blockchain Week Prague event. Thanks to the development of Ethereum iOS DevKit we were one of the official grantees, we had two talks during the conference and we were in the center of action during the whole week.

How We Localize Our Apps
Every app needs localization even when it’s small and “single language” app. You never know when another language could be added. Even when you’re totally sure there will be no more languages in the app, you should never have strings written directly in the code for many reasons. So you can create some custom enums, constants, whatever or you can use standard default localization keys. Guess what’s better. ? (more…)