IllusionVK / ReplaceAppCenter

A place to discuss alternatives for CodePush and maybe also the distribution of apps.
30 stars 0 forks source link

AppCenter alternative #7

Open riderx opened 2 years ago

riderx commented 2 years ago

Hey as you, i was super disappointed about the announcement. I was also disappointed about the Appflow price, mostly because i don't need native build, just live updates.

So i start to speak with the community and find a way to make an alternative in December.

For now, it's totally free and open source :

https://capgo.app/ i try to build it with the community and find a fair way to make business around it . You are welcome to join the discord or comment, i'm open to discuss all ! Capgo allow you to send update but also test app with your team in the sandbox app.

Coming soon updates stats

vesper8 commented 2 years ago

@riderx Hey thanks a lot for making this and sharing it with us. It does look great!

Only issue though is that it's only for Capacitor and I'll be honest, I don't even know what that is. I know it's similar to Cordova / Phonegap.. like maybe you can even call it an evolution on those. But since my current use-case is 100% Cordova and I have multiple live apps built with Cordova.. I'm not super hyped about having to migrate that to something new. I'm using lots of Cordova plugins and I don't have weeks of time to invest to migrate.

I know the README mentions that Capacitor might also see its appcenter codepush support deprecated (or has this already happened now?). But I thought the main objective for this repo was to provide an alternative for Cordova users. I understand why you would first put the priority on supporting the thing that you personally use. Do you think it would be a lot of work to extend support to Cordova users as well in Capgo? Do you have any plan to add this support or that's not at all on your list right now?

Either way it's still really sweet that you built this and open-sourced it. Cheers!

riderx commented 2 years ago

@vesper8 i didn't imagine so many people still use Cordova. I could make the same for Cordova, but it's a lot a work ! I was using Cordova for 5 years, and now happy to use Capacitor.

Most of Cordova plugin are compatible with Capacitor. I do help startups to migrate to it as freelancer, and that improves a lot they workflow, usually it takes me around 10 days.

Create the Cordova plugin will probably take me more since i never made Cordova plugin. i will say around, 25 day to be features complete.

We can potentially find a way to make it work for you. You are welcome to contact me by email martindonadieu@gmail.com

vesper8 commented 2 years ago

@riderx I've done more reading about Capacitor and I'm really on the fence about whether I want to try to migrate to it. Cordova just works really great for me right now and I've never used Ionic and don't feel like I'm really missing anything in Cordova right now. I kind of have the feeling, from a first impression, that Capacitor isn't necessarily better or "the future". I also get that fewer and fewer people are using Cordova which I find sad.. but there are clearly still many just from looking at the weekly downloads of the most popular cordova plugins, and many of them continue to be well maintained with fixes coming out for the new features of IOS/Android.

My apps are built with Vue and I'm happy how it all turned out. It's cool that Capacitor has backward compatibility with Cordova plugins but I've read that this isn't 100% true, supposedly Capacitor doesn't support hooks? Which I do use in a few plugins. My biggest fear is that I'll have to spend a long time getting in-app-purchases and renewable subscriptions working.. this was kind of a nightmare to get working on IOS and Android using https://github.com/j3k0/cordova-plugin-purchase, but in the end I finally got it all to work. It looks like Capacitor doesn't have a plugin for in-app-purchases which I find very worrisome. I mean I did find https://github.com/capacitor-community/in-app-purchases but it hasn't been updated in over 2 years and the readme says it's not ready for production.. which is a big red flag. The Cordova plugin continues to be well maintained with new releases coming fairly frequently.

riderx commented 2 years ago

i agree for Cordova lot of magic happened inside and that is great, but sometime when the magic, fail it's super hard to fix it.

Capacitor removes the hook to fix that. It's less magic, but you are way more free to do what you need.

Finding Capacitor plugin is still a bit messy so i made a awesome list to try to fix this: https://github.com/riderx/awesome-capacitor

As you, i use subscription in my apps, i have continue to use the Cordova one until January, and it was working great.

Then i decided to start using RevenueCat who make it way easier, and for that i adapted they Cordova plugin into a Capacitor one: https://github.com/riderx/capacitor-purchases But you can use they Cordova one, i then to use more capacitor because the bridge is easier to understand and let you fix it yourself if something don't work.

You can find here the list of plugin who are not working anymore in Capacitor : https://capacitorjs.com/docs/plugins/cordova#known-incompatible-plugins

If you need to see, i use Vuejs in my app like you. And one of my app is open source with Capgo used inside : https://github.com/Forgr-ee/Mimesis The app use ionic but not so much and that not mandatory.

Feel free to join the discord of Capgo, i could check your stack with you in 30 min, to tell you where it will be hard, if it will be, for free :)

Itokoyamato commented 2 years ago

Definitely good to see a community alternative, since I've been following what's going on, good job @riderx !

I do join @vesper8 in that cordova is still very much used, and sometimes it's not really an option to just switch to capacitor. Sometimes the size of the migration would take too long. We run cordova at my company and have had to look for alternatives to appcenter, especially since we use code-push heavily on a somewhat large scale in an unusual way since we have to manage over 150 apps.

I ended up turning away from current alternatives due some of the following reasons:

I do need to have some integration with our internal systems, so instead i'm going with a simple alternative of using Ionic's open source and in-house solution. Turns out to be much more simple and easy to setup than it seems.

Gonna be working on it this week, ping me if you're interested to discuss it @vesper8

vesper8 commented 2 years ago

@riderx Thanks a lot for sharing these resources, and for creating them in the first place, that's very good of you! And I would love to have your opinion regarding the principal pain points if I were to attempt to migrate. I had a look at the list of incompatible Cordova plugins and I am actually using several of those so that sounds a bit worrying. I've joined your capgo Discord channel too. I think what might make the most sense for me is to try out capacitor on a new'ish project that isn't on the app stores yet. For now I can continue to use AppCenter's codepush, even though they have expired support it appears they are continuing to allow codepush to work for existing projects. I don't know for how long they will do this but it appears that migrating is not so urgent for now. Right now I am in the process of launching a new app so I won't have time to look into Capacitor in the immediate future, but I would like to take a look soon after my app is stable. And it will be my pleasure to have this conversation in french too since I am Québecois : )

@Itokoyamato I appreciate that we are in the same boat somewhat. I wish (or do I?) I had 150 apps! That sounds like a big problem to have potentially. I'm interested in learning more about what solution you are working on. Did you already notice this issue https://github.com/IllusionVK/ReplaceAppCenter/issues/3? It seems someone else has already kind of solved the issue.. it's missing a guide for setting it all up but from the comments in this thread it appears that this self-hosted solution is fully operational, although I haven't tried to set it up yet since I don't have the need to for now as AppCenter is continuing to work for existing projects.

riderx commented 2 years ago

Let's do that on discord when you need! Starting with a fresh app is the best way to do it I strongly agree!

Migrate a big app will be more difficult if you never tried, not because Capacitor is difficult but more because you have to understand a bit more how native work, not much but that have to be learn first, then migrate become easy.

For AppCenter's codepush i'm afraid maybe starting 1 April they will stop to support it, i hope that an April fool i don't understand the point to stop to request from Cordova apps. Ref here: https://devblogs.microsoft.com/appcenter/announcing-apache-cordova-retirement/

For @Itokoyamato maybe we can have a talk, my api server who handle version is super simple, we can maybe work together to make it compatible if you develop your own plugin ? The below the current payload of the endpoint https://capgo.app/api/latest?appid=YOUR _APP_ID&channel=production :

{
"version": "1.2.3",
"url": "https://path_to_the_zip_file_of_the_code.com"
}
Itokoyamato commented 2 years ago

@vesper8 Yes I've seen that solution, and tried it long ago out of curiosity too, but I just don't need most of the backend provided. Even with appcenter, we never really use the interface or most features, I just need the code-push logic itself. Everything else is done manually. So really, appcenter is only integrated on the API level to use the code-push feature. Don't really want to pollute this thread more so feel free to continue this on discord Itokoyamato#9140 (or capgo's server)

Also appcenter did say the following:

Starting April 1, 2022, the App Center service will no longer accept calls from the Cordova SDK. While the services may continue to work for a short period of time afterward, we do not guarantee interaction of services or availability in the App Center portal.

So it is likely that updates won't work on the apps anymore after April 1st, and I imagine they will slowly remove all code and interface from appcenter over time.

@riderx Thanks. I am definitely looking for simplicity which you have, but it needs tight integration with our own systems, so at this point it's more work to integrate with a third party, yet again. We have already decided on an approach that fits our needs better. We're not developing any plugin, just using ionic's open source one. Which provides us with all the features we need and the reliability of code used by appflow. Well minus the price obviously, it'd cost thousands per month at our scale 😨. All we do is integrate it even better with our own stack since we skip the whole third party backend of appcenter now.

riderx commented 2 years ago

@Itokoyamato i have start the work for cordova, to see if i can handle it. it seems i could, but still need a lot of time, if you have capability to support me for that i could refuse freelance mission to focus on that now :)

Pigsnuck commented 1 year ago

Just encountered this issue myself. AppCenter code push is still working for me, but I am removing it from my project because I don't know when it will just stop working.

What's the status on alternatives? I would be willing to invest some time here. Would a good starting point not be to fork the MS open source code for code-push, and modify it to be self-hosted?

byronigoe commented 1 year ago

What's the status on alternatives?

See #3 for an explanation. I've had it running in production for a while now, and even migrated to a new server a month ago. It's working great.

Pigsnuck commented 1 year ago

@byronigoe That is amazing. Thanks for your hard work. I am ready to assist with bugfixing and supporting this worthy fork.

riderx commented 1 year ago

For the one who need I provide services to migrate Cordova app to capacitor, it take less than 10 days to be in production.

I did that for more than 10 apps now.

I recommend to do so since Cordova is not so well maintained compare to Capacitor. https://martin.solos.ventures