Skip to content
Projects

mohak1712/UberUX has 1,228 GitHub stars and 286 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 07:37 UTC. Last push 2019-09-01.

How these counts are measured

Project that demonstrates the entire animation stack present in the Uber app (android)

Measured star growth

in 24h
0
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

UberUX

Project that demonstrates the entire animation stack present in the Uber app (android)

Demo

Demo

Libraries

  1. FabProgressCircle
  2. Retrofit
  3. RxAndroid
  4. ButterKnife

Concepts

Transitions - For sharing elements between activities

void startTransition() {

       Intent intent = new Intent(LoginActivity.this, LoginWithPhone.class);

       Pair<View, String> p1 = Pair.create((View) ivBack, getString(R.string.transition_arrow));
       Pair<View, String> p2 = Pair.create((View) ivFlag, getString(R.string.transition_ivFlag));
       Pair<View, String> p3 = Pair.create((View) tvCode, getString(R.string.transition_tvCode));
       Pair<View, String> p4 = Pair.create((View) tvPhoneNo, getString(R.string.transition_tvPhoneNo));
       Pair<View, String> p5 = Pair.create((View) llphone, getString(R.string.transition_llPhone));

       ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, p1, p2, p3, p4, p5);
       startActivity(intent, options.toBundle());


   }

ViewPagerTransformer - For performing animations when ViewPager is swiped

ViewPager.PageTransformer pageTransformer = new ViewPager.PageTransformer() {
        @Override
        public void transformPage(View page, float position) {


            if (position < -1) { 


            } else if (position <= 1) { 

                   // animate here
        
                }

            }
        }
    };

Overlays - For creating overlays on map

 public void addOverlay(LatLng place) {

        GroundOverlay groundOverlay = mMap.addGroundOverlay(new
                GroundOverlayOptions()
                .position(place, 100)
                .transparency(0.5f)
                .zIndex(3)
                .image(BitmapDescriptorFactory.fromBitmap(drawableToBitmap(getDrawable(R.drawable.map_overlay)))));

    }

ValueAnimator - For animating overlays and polylines

ValueAnimator tAnimator = ValueAnimator.ofFloat(0, 1);
       tAnimator.setRepeatCount(ValueAnimator.INFINITE);
       tAnimator.setRepeatMode(ValueAnimator.RESTART);
       tAnimator.setInterpolator(new LinearInterpolator());
       tAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
           @Override
           public void onAnimationUpdate(ValueAnimator valueAnimator) {
              // animate here
           }
       });

PolyLines - For drawing lines on map

 PolylineOptions greyOptions = new PolylineOptions();
        greyOptions.width(10);
        greyOptions.color(Color.GRAY);
        greyOptions.startCap(new SquareCap());
        greyOptions.endCap(new SquareCap());
        greyOptions.jointType(ROUND);
        greyPolyLine = mMap.addPolyline(greyOptions);

How to use this project

Add your GoogleMaps and GooglePlaces key to google_maps_api.xml and turn on direction api from developer console -> You are good to go !

Explore related projects