I am new to mobile app testing. I am trying to understand how appium works. Basically i need to run tests parallel in both android and ios. But the scripts are written in C#. How would this be possible? Does appium work like Selenium Grid?
Appium doesn't follow the Grid model particularly and its not especially supported so you will mostly be on your own. My experience was that a lot of the grid related code is unmaintained and untested.
If you want to run C# tests against IOS you will have to use MacOS and will be quite restricted to recent dotnetcore supporting C# libraries , which means no specflow. This will confound your options , i would suggest using ruby as this has excellent appium support and is already installed on MacOS.
Trying to maintain a parallel execution test suite is very time consuming and most people give up. My experience was that the two mobile platforms have such different ways of doing things that the test code tends to get bogged down with a huge amount of conditionals when trying to handle both and their many quirks. This is especially true if your app does anything with network settings , local files or interacting with other apps.
Its far easier and just as effective to have the same code base test both platforms but keep the runs seperate, this also alows you to run tests sooner rather than waiting for a new build or re-running the IOS tests against an old when only the android build is ready. I would be very surprised if your application is built for both plaforms from the same code base.
If you do go down this route you should really have someone specifically tasked and trained to do this with time allocated to do removed from sprint velocity, also please share the fixes you will need to develop with community.