azhar1038/UPI-Plugin-Flutter

iOS implementation

yashwp opened this issue ยท 17 comments

Hi,

I would like to know, when can we see the support for the iOS platform as well?

Thanks.

For that I will need a MacBook, knowledge in swift and ios app development. If you send me a MacBook, I will probably need 1 month to make it work in ios! Just kidding ๐Ÿคฃ.

Anyway, I am adding help tag and if you want feel free to send a PR!

I did a quick research about intent calls in ios. It doesn't look promising. I don't know if it's even possible or not because this plugin is all about intents.

Anyway I have zero experience of working with ios, so can't say anything for sure. Maybe you can check if any other upi plugin supports ios.

@mdazharuddin1011999 Same with me, no Apple device or experience with iOS development.

I worked with upi_pay package (https://github.com/drenther/upi_pay) developers on this as well as expanding overall support to what is a very wide spectrum of UPI payment apps. I chose that package as their maintenance seemed to be active (based on how recent their last release was). However; I'm more than happy to help each UPI package if their main developers have time and interest to keep working on continuously upgrading their project. So sharing details of work I did with upi_pay developers.

Feel free to look at these and let me know if you find it useful and worth integrating:

drenther/upi_pay#15
drenther/upi_pay#2
https://github.com/reeteshranjan/upi_pay (my fork of upi_pay with all the work I did committed)

Thanks for the information. I will look into the resources you have provided!

Wow! It seems you did quite a deep research. For now I will be focusing on integration of more UPI apps and keep iOS for later. I would be happy if you could help me in this.

@reeteshranjan I would say, you can contribute here with iOS integration.

@reeteshranjan I would say, you can contribute here with iOS integration.

I will. Been hectic unexpectedly and soon will contribute pull requests.

Wow! It seems you did quite a deep research. For now I will be focusing on integration of more UPI apps and keep iOS for later. I would be happy if you could help me in this.

Pull requests soon

Nice! But sadly I still have no means to test iOS stuff : (

Then you can go with my testing, if that makes sense.๐Ÿ˜Š

I'm testing on iPhone 7 with iOS 14.x. With minimum iOS versions required for UPI moving upward all the time (my earlier iPhone 6 that won't upgrade beyond a certain iOS version blocked me from testing several apps that would just bail out on that phone), I guess iPhone 7 + iOS 14.x is the lowest combination to safely make UPI work anyway.

That would be great, thanks!

From what I understood, iOS will randomly call any available upi app for carrying out the payment. I don't know much about iOS but is this the default behaviour? I mean what if you have multiple browsers installed and you click on any link? Will it randomly choose any available browser to open the link?

That would be great, thanks!

From what I understood, iOS will randomly call any available upi app for carrying out the payment. I don't know much about iOS but is this the default behaviour? I mean what if you have multiple browsers installed and you click on any link? Will it randomly choose any available browser to open the link?

Yes.

However; for the case of UPI apps, it's not completely random. Observation shows that iOS picks the oldest installed app. In all the testing so far, I see this behaviour consistently. I have properly highlighted this behaviour in the README, and every other important detail of how things work differently across Android and iOS.

About browsers, there is 'default browser' concept on Mac and iOS. That's picked. That one is not random at all.

Man! Learning iOS app development will be a hell lot difficult, I guess ๐Ÿ˜ญ

Man! Learning iOS app development will be a hell lot difficult, I guess ๐Ÿ˜ญ

As difficult or easy as any other thing really. Everything comes with its pros and cons. For example, take your work on Android 11 break. That security aspect that you have to declare every app you want to call is there in iOS 8 onward (today it's iOS 14). Once you go through developing with that kind of framework, it makes you more aware about security and privacy. At the same time, not many will be happy with the Objective C syntax and the length of the code developed with it!! Swift has relaxed many iOS developers. The list of pros and cons just goes on.

True.

Actually according to docs there is no need of adding all apps in the manifest if you just declare the scheme but it didn't work, so I just added them.