Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android Version #2

Closed
housseindjirdeh opened this issue Jul 5, 2017 · 36 comments
Closed

Android Version #2

housseindjirdeh opened this issue Jul 5, 2017 · 36 comments
Assignees
Projects

Comments

@housseindjirdeh
Copy link
Member

housseindjirdeh commented Jul 5, 2017

Since this is built with React Native, it only makes sense to include an Android version.

Unfortunately, I haven't once tried running the application on a Android emulator or device so there is definitely going to be quite a bit that needs to be done to have it working smoothly across both platforms.

@rmevans9
Copy link
Contributor

rmevans9 commented Jul 11, 2017

I love the look of this app but can't use it since I run Android... so I spent 5ish minutes to see if there is anything that is a major showstopper for this to run on Android. My findings:

  • You need to hook up deep linking on Android. Add this to your main activity in AndroidManifest
<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="gitpoint" />
</intent-filter>
  • react-native-search-bar is iOS only. Would need to either switch to something more cross platform or provide an Android alternative.

So far that is all i have as I haven't had a chance to work around the search bar issue. The screens I have seen working do look good on Android though so thumbs up there!

@housseindjirdeh
Copy link
Member Author

@rmevans9 I can't thank you enough for this. I'm so happy to hear that screens are looking quite good on Android 🙌 . From the sounds of it, it doesn't look like there is too much to do 😃

I'm going to tackle this in the coming week and hopefully have it up and running in around a week or so. Will post my updates here (and of course: any kind of contribution is always welcome!!)

@rmevans9
Copy link
Contributor

I should probably point out I only saw like two screens because if the second issue pointed out.

@housseindjirdeh
Copy link
Member Author

Thank you, in that case you're right there are quite a few screens in the app so there may definitely be things to do in many of them (off the top of my head for example - I use ActionSheetIOS in a number of screens so will need to find a cross platform solution for that)

Two screens looking decent is still good news nevertheless! :)

@rmevans9
Copy link
Contributor

After commenting out SearchBar in the 4 screen files I have the app up and working. I am sure that if I triggered anything that used ActionSheetIOS it would fail miserably.

image

image

image

@housseindjirdeh
Copy link
Member Author

Sweet sweet sweeet.

All in all it doesn't look too bad and I'm so glad :D. The tab bar looks completely out of place for one and screens without the navbar (like the notification's screen) makes things look a bit off I think.

Going to spend some time later this week running it myself and see how many things I can spot and smooth out. Thanks again for all the help, and please don't hesitate to put up a PR for anything if you feel like. Already appreciate you putting one up so fast :)

@rmevans9
Copy link
Contributor

rmevans9 commented Jul 12, 2017

The tab bar is because react-navigation defaults to TabBarTop for Android with a tabBarPosition of top. You just need to force it to the bottom and tell it to use TabBarBottom and set the position. Looking at your code you already force it to TabBarBottom so it is a simple change to force it to the bottom. PR landing in ~30 seconds

ref: https://reactnavigation.org/docs/navigators/tab#TabNavigatorConfig

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 12, 2017

Cheers I had a feeling it was defaulted to the top for react-navigation, thank you :D

Don't forget to add yourself to the list of contributors in the README!

@rmevans9
Copy link
Contributor

Alright - I think that is plenty productive for sitting in an airport. If you want or need further assistance just tag me here or if you just have a question you can find me hanging around the react-native channel in infinite red's OSS community slack - find the link in https://github.com/infinitered/reactotron readme. Can't wait to see this on the Google Play store!

@housseindjirdeh
Copy link
Member Author

Can't thank you enough for everything you've already done - will definitely keep you in the loop as things progress here 🙌

@Talor-A
Copy link

Talor-A commented Jul 12, 2017

@housseindjirdeh I can assist with running on Android, I actually have a cross-platform wrapper for ActionSheet that I'm using in my own app that I can shoot you a PR for.

@housseindjirdeh
Copy link
Member Author

Thank you so much @Talor-A, any assistance would be extremely appreciated! And that's awesome - I was just planning to look for a cross-platform wrapper so I'm glad you already have one 🙌

@patw0929
Copy link
Member

patw0929 commented Jul 13, 2017

I am looking forward the Android version too!

I made some revision for compatible with Android:
https://github.com/patw0929/git-point/tree/feature/android-version

We have two obvious issues, ActionSheetIOS & the search box are only compatible with iOS, so:

  • Using react-native-actionsheet to replace build-in ActionSheetIOS
  • Using react-native-search-box to replace the react-native-search-bar

I believe there still have some bugs, please kindly providing better way & advice to solve it.
Thanks.


Screenshots:

screenshot_20170714-010904
screenshot_20170714-010921
screenshot_20170714-010937
screenshot_20170714-011004
screenshot_20170714-011011
screenshot_20170714-010847

@andonyns
Copy link

Hi! I've really liked what I've seen of this project so far.

I do not have any experience on react native or react whatsoever but I would love to collaborate doing QA for the android version as soon as it is up.

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 13, 2017

@patw0929 that looks outstanding!!!!! there may still be bugs but wow it's coming together so nicely :O

Will you putting up a PR for it soon? As long as the iOS functionality hasn't changed - let me know if you think it's in a good enough state to put up a PR

@housseindjirdeh
Copy link
Member Author

@andonyns I would love to help you get started with React Native by working on super simple issues in this repo. Happy to spend some time showing you the ropes to get started (only if you're interested enough however)

And of course that would be so useful! Will let you know as soon as an Android version is available for you to demo on your device 🎉 . The more opinions/testing we do on devices the better.

@pschfr
Copy link

pschfr commented Jul 13, 2017

@housseindjirdeh I would also help with Q/A on my Android device!

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 13, 2017

@pschfr I'll be sure to also shoot you a message so soon as Android is in <3 I owe you one mate :)

@jkomyno
Copy link

jkomyno commented Jul 14, 2017

@housseindjirdeh IMHO instead of replacing the previous searchbar completely as @patw0929 suggested, I would simply declare two different wrappers: searchbar.android.js and searchbar.ios.js. RN will automatically choose the right one basing on the current running platform. Doing so we don't lose platform consistency. It's the same for the ActionSheet. I would use the actual ActionSheetIOS on iOS and something like react-native-bottom-sheet for Android (again, I would create two different files which can accept the same props: actionsheet.android.js and actionsheet.ios.js)

@jkomyno
Copy link

jkomyno commented Jul 14, 2017

@patw0929
Copy link
Member

@jkomyno Thanks for advice, I will try this way tonight. :)

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 14, 2017

@jkomyno I think that's a great idea 🙌

So if I'm not mistaken - react-native-action-sheet wraps around ActionSheetIOS for iOS and it might just be easier to use it as a single solution. However , I don't exactly know how it renders the Action Sheet for Android and if it renders it the way it should. @patw0929 @jkomyno if we try and realize that it looks just fine on Android as well - I think I'm okay with this. However if another library (like react-native-bottom-sheet-behavior) actually bridges over to an Android interface and is more reasonable than I'm definitely onboard with splitting the logic out to not lose platform consistency.

With regards to the search bar, react-native-search-box doesn't seem to bridge over to a native iOS search bar so I'm definitely in favour of splitting the logic here and relying on (if it exists?) a native Android search bar wrapper

@patw0929
Copy link
Member

patw0929 commented Jul 14, 2017

Yap, @housseindjirdeh you're right, react-native-action-sheet wraps ActionSheetIOS for iOS. And I'm not sure should we use other component for Android? Any better component?

And I already updated the PR #49, about the SearchBar component which depends on different platform:

  • Using react-native-search-bar on iOS (like before)
  • Using react-native-material-design-searchbar on Android (like @jkomyno's example gist)

Android's screenshot:
304479

Any suggestion? Thanks!

@housseindjirdeh housseindjirdeh added this to To Do in Roadmap Jul 14, 2017
@housseindjirdeh housseindjirdeh moved this from To Do to In Progress in Roadmap Jul 14, 2017
@conema
Copy link

conema commented Jul 14, 2017

@patw0929, I hope that @housseindjirdeh will accept your PR soon, I look forward to help you all with the android version.
I saw that "profile.screen.js" wraps ActionSheetIOS too, we haven't put react-native-actionsheet yet? It should be cross-platform.

Citing from the repository:

ActionSheet is a cross-platform React Native component that uses the native UIActionSheet on iOS and a JS implementation on Android

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 16, 2017

@conema cheers thank you I appreciate the offer to help mate! I reviewed the PR and every ActionSheet should be referencing the correct one now :)

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 16, 2017

So thanks to the amazing work by @patw0929 - we're one step closer to having an Android version 🎉

After playing around with it for some time - it looks really good design wise. There are definitely a more than a few styling quirks that still need to be fixed however.

The bigger issue I'm noticing is that navigations are slow. It seems to take 1-2 seconds to navigate between tabs or screens in a stack when running on an actual device (and I'm making sure logger or devtools isn't running. However if I debug JS remotely, it seems to run a lot smoother). I'm hoping that this is smoothed out when running a release type build but I'm not sure - will look into it deeper tomorrow.

One more thing is that there are red screens of death popping up quite a bit, so it'll definitely take a little bit of time to smooth things out.

@conema @pschfr @andonyns I'm going to spend a little more time tomorrow testing/running/logging issues and I'll love if you folks can try testing on your devices eventually. Doesn't have to be tomorrow since there's still fixes that need to be done but if you get the time in the week - it would be so appreciated <3

Excited seeing it all come together!

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 17, 2017

Update 📢 📢 📢 📢

So I've spent most of yesterday fixing any glaring issues with the Android build + various styling issues. There are probably definitely some more I haven't noticed just yet so I'll appreciate if anyone reading this would like to assist, to pull from latest in master and run it in their emulators/devices 🌟 🌟 🌟 🌟

One thing I still haven't gotten to the bottom of is that the app tends to run very slowly when I run it on a Samsung S8 and when I debug JS remotely through the browser, it's a lot faster. Will definitely appreciate if anyone can let me know how it runs on their devices (or does a release Android build run at much more normal speeds then debug builds??)

If there's anything you notice at all, please log an issue for it!! Styling, performance, crashes, suggestions - anything at all will be appreciated 😄

CC @conema @pschfr @andonyns @SammyIsra @everyoneelsewhowouldliketohelp

P.S We just opened a gitter chat so feel free to drop by and discuss there 🎉

@iamtekeste
Copy link

This might be dumb question but where do I download and install the Android version of this app?

@sersorrel
Copy link

@iamtekeste You don't -- that's the point of this issue. The Android version doesn't exist yet.

@andrewda
Copy link
Member

As @anowlcalledjosh said it's not published yet. I believe @housseindjirdeh is looking to try and submit it tonight or in the coming days :)

@housseindjirdeh
Copy link
Member Author

There's no such thing as a stupid question @iamtekeste :)

As @anowlcalledjosh and @andrewda said, it's not ready yet unfortunately! Once it is it'll be in the App Store (and will make it public so everyone knows 👍 )

If you want to live on the bleeding edge you can pull down the latest master branch and run it on your device. You'll notice some performance hits however unless you build the app in release mode for production. However I would only advise this for testing purposes as there are some changes/fixes pending.

@housseindjirdeh
Copy link
Member Author

housseindjirdeh commented Jul 19, 2017

Production Build 🎉 🎉 🎉

Just ran the release variant of the application on a Samsung S8. Things seem as smooth and performant as the iOS version of the app ⭐️ ⭐️ ⭐️

android-gitpointdemo

We're excited - we should have the Android app up in the Play Store as soon as we smooth out some minor details/fixes as well as add a few core things that are missing.

tl.dr: GITPOINT IS COMING SOON TO ANDROID!!!

crazy-dance

@benedyktdryl
Copy link

It's just awesome. If I can help with documentation or any Google Playstore related work, let me know.

@housseindjirdeh
Copy link
Member Author

Thank you so much @benedyktdryl, we'll let you know without a doubt and I appreciate it 🙏

@housseindjirdeh
Copy link
Member Author

The Android version is now available on Google Play 🎉 🎉 🎉 🎉

Try it out, let us know what you folks think! We appreciate the patience and we're beyond happy to have it up and available for everyone to use.

A million thanks to all the amazing contributors who made this possible

@andonyns
Copy link

andonyns commented Aug 4, 2017

This is awesome! Great work!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests