While there is no shortage of information out there to help you get started with Xamarin, making the most of the right tools and established best practices can really kickstart your development efforts.
On any new project you’ll face some key questions such as: Xamarin.Forms or Native UI? What architecture and/or frameworks are appropriate? How should I persist the state of my applications? What is the best tooling to test, build and deploy my apps? The choices you make here can be the difference between making a real impact in the early stages of your project and being left reinventing the wheel.
I was invited to talk at the .Net South West group recently as they were looking for some entry level material on Xamarin. I didn’t want to repeat the usual ‘What is Xamarin?’, ‘How does it compare with alternatives?’ or the standard getting-started material that is already out there. So I put together a new talk for the session – 7 Key Decisions For Any New Xamarin Project.
Now that Xamarin is more accessible than ever, many developers will have the opportunity to apply their existing .NET, C# or F# skills to building cross-platform mobile apps.
While there is no shortage of information out there to help you get started, making the most of the right tools and established best practices can really kickstart your development efforts. On any new project you’ll face key questions such as: Xamarin.Forms or Native UI? What architecture and/or frameworks are appropriate? How should I persist the state of my applications? What is the best tooling to test, build and deploy my apps?
I’ll walkthrough the early stages of a new Xamarin project, explaining the options and tackling these key decisions to show how you can quickly deliver professional apps across multiple platforms.
It was a fun evening and I was really impressed by the group. They were friendly, enthusiastic and asked a load of great questions.
I’m writing up the content for a blog post, so stay tuned for the details!
This is a talk I did for the SWmobile group with Kevin West back in February 2016. The practical advice from the talk is covered in 5 Common Pitfalls of UI Test Automation.
Why do UI Automation projects often fail? With many automated test frameworks, getting started with your first few tests is the easy part. Building a sustainable, flexible test suite that gives you valuable data on the quality of your applications can be daunting to say the least.
Let us take you from those first few tests to an end-to-end BDD process that has become part of our everyday work. Discover how having rejected the idea of a dedicated QA team, the core development team take responsibility for quality and invest in a process that delivers value for them.
Learn how Test Cloud solves many of the issues that typically derail automation projects, how to handle ongoing maintenance, how to maximise test reuse between platforms and how adopting the Page Object pattern can help build test cases that can handle even a complete UI redesign with ease.
As the Test Pyramid tells us, unit and integration tests should make up the bulk of our test strategy. But where we draw the line between the two, how they complement each other and their relationship with our acceptance tests can be a source of confusion.
Building on my Hexagonal Architecture series of posts, I’ll walkthrough an example that outlines my usual strategy for technical tests by building the test configuration of a Ports and Adapters application.
Continue reading “An OO Application Technical Test Strategy”
N-tier or layered architectures have become so common for software applications over recent years that practical examples of an alternative in serious use can be hard to come by. I find that people are so used to thinking in terms of tiers and layers that they don’t necessarily consider that there may be an alternative way to think about their own applications.
I would argue that many cross-platform mobile applications are being built in a way that more closely resemble a Hexagonal Architecture.
Continue reading “Think Hexagonal Architecture for Cross-Platform Mobile Applications”