Tag

iOS Archives - Falafel Software Blog

Enable iOS 10 Speech Recognition in NativeScript Apps

By | iOS, JavaScript, Mobile, NativeScript, Objective C | One Comment

Before iOS 10 was released, it was rather difficult to integrate Speech-to-Text capabilities (Not just Voice-to-Text dictation) into iOS applications. We had a myriad of frameworks to choose from and most of them were commercial products such as Nuance. iOS 10’s Speech Framework can empower your iOS apps with native, Siri-like, speech recognition. In this column, I am going to show you how to use NativeScript to access the Speech Recognition APIs. If you are not familiar with the Speech API, I advise that you take a look at the documentation articles. You can see that the APIs are available…

Read More
iPad and iPhone

Xamarin Quick Tip : Identifying if a device is an iPad or an iPhone using UserInterfaceIdiom

By | C#, iOS, Xamarin | No Comments

If you simply need to determine whether the device using your application is an iPad or iPhone in Xamarin.iOS without additional ceremony, look no further. The UserInterfaceIdiom can be used to solve this problem. Identification of the Device Type using UserInterfaceIdiom In order to identify the device type using the application. The following code can be used:

The UserInterfaceIdiom property will return any of the following enum values: CarPlay Pad (iPad) Phone (iPhone) TV Unspecified Alternatives for a more granular Device Identification If you require a more granular approach to device identification, such as distinguishing between the specific models of each…

Read More
Filtering data with the Search Bar

Xamarin Quick Tip – Adding a Search Bar to a UITableView in iOS

By | .NET, C#, iOS, Mobile, Multi-Device, Visual Studio, Xamarin | No Comments

A common bit of functionality required in a mobile application is including some type of search functionality in an application. Typically this takes the form of a search bar along with tabular results. In this article, I will walk you  through adding simple search functionality to a UITableView in iOS. Setting up the project Create a new blank iOS universal application with a storyboard. In the storyboard create a new UITableViewController and assign it the class name of FruitTableViewController. Name the table tblFruit. Finally, change the type of table cell to Basic, and assign it the reuse identifier of FruitCellId. If you have trouble setting…

Read More
Swipe Left on Pineapple

Xamarin Quick Tip – Swipe Left To Delete

By | .NET, C#, iOS, Mobile, Multi-Device, Visual Studio, Xamarin | No Comments

In some projects, it may be requested to be able to swipe left to delete an item in a table. In order to implement this, there is a handy component called SwTableViewCell that provides this valuable functionality.  What is missing however, is decent documentation to get it up and running with Xamarin. In this article, I will walk you through adding this component to an already existing table view. Setting up the project The first thing we need to do is to build an application that has a table populated with some items. Create a new C#, Universal iOS application,…

Read More
Blank iOS Appliation

Xamarin Quick Tip : Setting a UI Table View Background Image

By | .NET, C#, iOS, Visual Studio, Xamarin | No Comments

Full-screen background images are an attractive design feature in many mobile applications. In this article, I will show you how to set an iOS table view background image using C# so you can achieve full screen backgrounds on your Table View Controllers in your application. Creating the Solution Open Visual Studio, and create a new Blank iOS Application. I’ve named mine BackgroundImage. Creating the Storyboard Once the solution has finished generating, add a new Empty Storyboard to the solution, name it Main.storyboard. Next we will need to assign the storyboard to our application launch sequence. To do this open the info.plist file, and under…

Read More

Migrating from Mobile Services to Mobile Apps, when you should consider it

By | .NET, Android, Apps for Office, Azure, Microsoft, Mobile, News, node.js, Office365, Visual Studio, Web, Web & Mobile | 4 Comments

This is post 13 of 31 in the series “A Cloudy 29 Days of Microsoft Azure” In this column we are going to discuss the difference between Mobile Apps and Azure Mobile Services,. Azure Mobile Services allows you to add a cloud-hosted scalable backend to your connected apps within minutes. Whether you’re building apps for Windows 8, Windows Phone, iOS or Android you can take advantage of the Azure cloud to streamline your data and provide a robust, reliable and cost-effective platform to support your application. Mobile Services has been around since 2012 when it was in preview, and has seen many version updates and…

Read More

Cross Device Testing

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing | One Comment

This is post 31 of 31 in the series “31 Days of Mobile Testing with TestComplete” Cross Device Testing For apps running on multiple devices and operating systems, you can avoid maintenance and extensibility headaches by planning up-front. I usually start by researching the expected work-flow. What are the objects? Are there methods and properties I need for automation? How different is the usability from one version of the app to another? Just a few simple actions can have a surprising number facets to consider. There’s no limit to how complicated things can get, on account of one thing always leading to another….

Read More

Testing Sensors on Mobile Devices with Test Complete

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 30 of 31 in the series “31 Days of Mobile Testing with TestComplete” Sensors Sensors measure device position, movement and environment. TestComplete lets you enumerate and read each sensor. Both iOS and Android Device objects have an indexed Sensor property and a SensorsCount so you can iterate through the list. For example, to log every sensor name on a device:

  The log for my Samsung Galaxy shows the available sensors: To get the same for every connected device, iterate the Mobile object’s children using the ChildCount property and Child(index) method. The Child() method returns an…

Read More

Automated Testing on iOS Controls with Test Complete

By | iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 29 of 31 in the series “31 Days of Mobile Testing with TestComplete” iOS Controls To find out what iOS controls TestComplete supports, go to project properties and look under Object Mapping. There you’ll find the complete list of control categories that TestComplete supports in your environment right now: Each category may support one or more controls. For example, the Table view category shows support for iOS UITableView, UITableViewCell and any derived classes. Researching the Control We can use picker controls as an example. With a picker, you can select from a revolving list of values. The…

Read More

Automating iOS User Actions

By | iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 28 of 31 in the series “31 Days of Mobile Testing with TestComplete” Automating iOS User Actions Once you have your iOS app instrumented, the gates swing wide open and you can use everything that TestComplete offers. Each mobile object and the device object can simulate touch, long touch, keyboard entry and dragging. There isn’t a Gestures collection like Android testing has, but you simulate single-point gestures in code. For the walk-throughs in this blog I’ll use instrumented versions of the “Hello World” apps created by Xcode starter projects: tabs, page based, and a game starter project….

Read More

Instrumenting iOS Apps, What could go wrong?

By | iOS, Mobile, News, SmartBear, TestExecute, Testing | 2 Comments

This is post 27 of 31 in the series “31 Days of Mobile Testing with TestComplete” Instrumenting iOS Apps, What could go wrong? We all know the answer to that – plenty. Here are a couple of bricks I stubbed my toe on. If you’ve run into other issues while instrumenting iOS, please share a comment. No Code Signing Identities Found This message appears if you’re trying to archive the app and you’re missing the Developers certificate and provisioning files. The error message shows up on the left in the Issue Manager The Xcode Preferences under the Account tab > View…

Read More

Instrumenting iOS Apps III

By | iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 26 of 31 in the series “31 Days of Mobile Testing with TestComplete” Instrumenting iOS Apps III – Getting the Files To prepare for this blog, I scrubbed the certificates from the Apple Developer site and from the Mac, then rebuilt them. I’ve done this multiple times, but the process has too many variations to go down every path. I’ll try to show you my path and what it looked like along the way. To begin, I created a directory named “Certs” that I could access from both TestComplete and the Mac. The Certs directory ends up…

Read More

Instrumenting iOS Apps II

By | iOS, Mobile, News, SmartBear, TestComplete, Testing | One Comment

This is post 25 of 31 in the series “31 Days of Mobile Testing with TestComplete” Instrumenting iOS Apps II – Preparation When we left off, we were using the TestComplete UI to instrument iOS apps. But first we need a certified app archive *.ipa file. To get that *.ipa file built, we need a little preparation. What You Need First Make sure you have these items ready before continuing: A Mac with the latest OS, iTunes and Xcode installed. A PC with TestComplete installed and Mobile extensions enabled. Install iTunes on the PC. You can download it from here. Get an…

Read More

Instrumenting iOS Apps I

By | iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 16 of 31 in the series “31 Days of Mobile Testing with TestComplete” Instrumenting iOS Apps Adding un-instrumenting iOS apps won’t get you far, even to use image-based testing. Running an un-instrumented iOS TestedApp from the IDE triggers an error dialog “The iOS application ‘your app’ cannot be started”. The app is installed to the device automatically and can be run manually from the device. Just not through TestComplete. The Object Browser won’t show anything below the device node and running the Mobile Screen shows this “Nobody’s home” message: How to Instrument iOS Apps in the TestComplete…

Read More

Open Apps Introduction

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing | 3 Comments

This is post 12 of 31 in the series “31 Days of Mobile Testing with TestComplete” Open Apps Introduction Trying to test mobile apps using the “black-box” approach is like knocking on the door of a candy store with a sponge. You can see a few things from the window, but to get your hands on all that mobile-goodness, you have to open the door and step in. Image-based testing won’t show you an object’s properties and methods the way a desktop or web app will. The Object Browser shows the name of your iOS or Android device and that’s…

Read More

Using Mobile, Device and Desktop Objects

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 11 of 31 in the series “31 Days of Mobile Testing with TestComplete” Using the Mobile Object The Mobile object is the starting point to reach connected mobile devices in TestComplete. In the Object Browser, Mobile is analogous to the Sys node. Instead of listing all processes, Mobile represents all devices connected. I have an iPhone and an Android device connected to a computer running TestComplete. They both show up in the Object Browser: List All Devices You can roll through all the devices using the Mobile ChildCount property and Child() method. The code is generic and doesn’t care…

Read More

Preparing iOS Devices

By | iOS, Mobile, SmartBear, TestComplete, Testing | 3 Comments

This is post 7 of 31 in the series “31 Days of Mobile Testing with TestComplete” In today’s blog we’re going to do minimal setup for an iOS device and TestComplete. When we’re done today, we will be able to see the device in the Object Browser, but won’t be able to do much with it yet. As of this writing, TestComplete requires that iOS apps are instrumented before we can test on them. The lion’s share of the work will happen instrument an iOS app starting on the 17th. Install iOS Drivers On the PC where TestComplete will run, get…

Read More

Web-Based Testing: Scripting and Handling Page Differences

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing, Web | 3 Comments

This is post 3 of 31 in the series “31 Days of Mobile Testing with TestComplete” Scripting Virtual Browsers In our last episode, we recorded a web-based test using the drop down list of Virtual Browsers from the Record button. If you want to just script up front, use the TestComplete VirtualBrowsers Item() to get a virtual browser info object, then call Run() to kick off the virtual browser. You can pass a URL to Run() if you want to navigate in the same step.

Note: VirtualBrowsers.Item() and its big cousin Browsers.Item() don’t return browsers, but objects that allow…

Read More

Web-Based Testing: Testing Responsive Web Sites

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 2 of 31 in the series “31 Days of Mobile Testing with TestComplete” Testing Responsive Web Sites A growing number of organizations use responsive design to show their website equally well on desktops and smart devices. Falafel.com (see below) displays nicely as a full web page in a browser. When displayed on a mobile device, the site serves a vertical arrangement with items down the page, and includes a hamburger icon menu button for easy mobile access. The example on the right is from the Google Mobile-Friendly test page. While our chief designer, Matt Kurvin, won’t argue…

Read More

Mobile Testing Approaches

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing, Web | 4 Comments

This is post 1 of 31 in the series “31 Days of Mobile Testing with TestComplete” TestComplete has three basic mobile testing approaches: web based, image based (black box) and open applications (white box). Let’s take a quick tour, weigh the trade-offs and see which approach works best for you. Web-Based Testing If your mobile app is actually run from a browser within the device as a web page, then web based testing is your weapon of choice. You can automate virtual browsers to display as if they were running on iPhone, iPad, Windows, Android, Blackberry or any custom device….

Read More

31 Days of TestComplete Mobile

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing, Web | 2 Comments

31 Days of TestComplete Mobile During January, I’ll explore TestComplete mobile testing and share the experience. We’ll talk about how TestComplete tests apps for smart devices: web-based tests for responsive web sites, image-based testing, testing instrumented apps, emulating user actions, and a lot more. Here’s the topic line-up so far: Introduction and Testing Approaches Web-Based Testing: Testing Responsive Web Sites Web-Based Testing: Scripting and Handling Page Differences Web-Based Testing: Configuring Custom Browsers Preparing Android Devices Using the Mobile Screen Preparing iOS Devices Testing Android Apps on Emulators Image Based Testing Handling Image Variations Using Mobile, Device and Desktop Objects Open Apps Introduction Instrumenting Android Apps…

Read More

Using Azure DocumentDB with Cordova Tools in Visual Studio (or any JS client)

By | ASP.NET, Azure, Cordova, HTML5, iOS, JavaScript, Microsoft, Mobile, Multi-Device, News, node.js, Tools, Visual Studio, Web | 4 Comments

Abstract A few weeks ago, I set on a mission to learn more about Azure DocumentDB. My end goal was to use Azure DocumentDB with a JavaScript client application specifically with a Cordova app built with the new Tools for Apache Cordova or TACO which the team introduced a while ago. Background In April 2015, Microsoft officially released DocumentDB, its cloud, document oriented, NoSQL database (It was in preview since 2014). Azure DocumentDB, a new player in the NoSQL market, is built to work within the Azure Cloud ecosystem much like SQL Azure, SQL Storage, Azure search, etc. You would use DocumentDB…

Read More

Falafel Partners with New Venture Software to Provide Additional Custom Development Support

By | .NET, MVC, News | No Comments

Falafel is very happy to announce that we have formalized a partnership with New Venture Software, a boutique custom software development and consulting company. The partnership between Falafel and New Venture Software is built on a long history that started back in 2006. Moving forward, we are now able to extend our capabilities around .NET, MVC, WPF, HTML5, iOS development Objective C and Swift as we work side-by-side on select customer projects as needed.

Read More
Falafel-2-go-iOS-ListView-White-Background

Adding Transparency to the ListView on iOS with Xamarin Forms Custom Renderer

By | Xamarin | 3 Comments

One of the minor issues we encountered when developing Falafel 2 Go was that on iOS, the ListView defaults the background color of the ViewCell to white. I’m not sure if this is an oversight, intentionally by design, or if it will be changed in the future, but we needed a way to make it transparent. Otherwise the textured custom background from the design would be covered up by the white background of the ListView on iOS. Here’s what it looks like before: Custom Renderers Fortunately, this was a simple issue to resolve by creating yet another custom renderer to…

Read More

Multi-Device Hybrid Apps… Custom Plugins

By | .NET, iOS, JavaScript, Microsoft, Mobile, Multi-Device, News, Tools | 8 Comments

Abstract If you are starting a project and ready to add a few Cordova API plugins, you have many choices to choose from. If you’ve tried to add a custom plugin to your Multi-Device Hybrid app, you might have noticed there is no easy way to do that. In this post I will show you how that can be done. Background Cordova has moved into a modular design starting with version 3. For example, to call the device.version API, you need to include the Device plugin into your project. It also supports two different ways to add and remove plugins, depending…

Read More