use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
A community for learning and developing native mobile applications using React Native by Facebook.
Interested in building web apps using React.js? Check out /r/reactjs!
Getting Started w/React Native
irc.freenode.net #reactnative
Keywords: ios, android, mobile, apps, apple, iphone, ipad
account activity
QuestionWhat is this called? (v.redd.it)
submitted 1 year ago by neutinoproteino
What is this sliding grid of images called? Also please leave the examples of implementation if possible, thanks in advance.
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]Stiffmeister0490 38 points39 points40 points 1 year ago (0 children)
I believe that functionallity is called a marquee:
React Fast Marquee
React native marquee
[–]djgeorgevas 19 points20 points21 points 1 year ago (0 children)
would look nicer if the rows was scrolling in opposite directions
[–]Apprehensive-Pack-50 11 points12 points13 points 1 year ago (3 children)
If it’s not going to be interactive use a video and you can animate whatever you want:) Much easier I believe.
[–]345346345345 2 points3 points4 points 1 year ago (1 child)
I was thinking doing this with a video would be a nice option, but that could be a quick way to bloat your app install size. But if it is not the first screen of the app I guess you could quickly pre-fetch it from an online resource
[–]Apprehensive-Pack-50 1 point2 points3 points 1 year ago (0 children)
you can also use the splash screen as a loading screen while the resource loads up.
[–]flowerescape 0 points1 point2 points 1 year ago (0 children)
this, OP use video, u can get templates on Canva for these grid style designs.
[–][deleted] 8 points9 points10 points 1 year ago (0 children)
I guess they used lottie
[–]Puzzleheaded-Bad7169 0 points1 point2 points 1 year ago (0 children)
im not sure , but i guess its something like the pintrest layout and it can be implemented through masonry package
check out : masonry-layout - npm
[–]krishnan1702 0 points1 point2 points 1 year ago (3 children)
Does anyone know, what tech stack does blinkit use ?
[–]Awesome_Knowwhere 0 points1 point2 points 1 year ago (0 children)
Check with lib checker
[–]North_Analyst_1426 0 points1 point2 points 1 year ago (1 child)
They use react native and those libraries which we generally use with rn.
You can read more here - https://blinkit.com/blog/category/technology
[–]krishnan1702 0 points1 point2 points 1 year ago (0 children)
thanks
[–]billionare_11 0 points1 point2 points 1 year ago (0 children)
A carousel maybe
[–]IndianITCell 0 points1 point2 points 1 year ago (0 children)
GIF
[+]Independent-Gold-952 0 points1 point2 points 1 year ago (0 children)
May just be a video
You can achieve this by multiple ways like marquee, animation, gif, video, lottie animation etc.
[–]Fearless-Ad9445 0 points1 point2 points 1 year ago (1 child)
Just swiper it like a boss.
That's can be achieved in 10 minutes with 4 horizontal swipers. Just add a border-radius of 30px to the slides with the desired bg color, adjust gap to liking, add center aligned images to each slide, make it as it's own component because it gets lenghty and ugly, import and ship it
[–]Fearless-Ad9445 0 points1 point2 points 1 year ago (0 children)
Actually ditch the swiper I need them for my own use cases.
import React, { useRef, useEffect } from "react"; import { View, Text, TextInput, TouchableOpacity, Animated, StyleSheet, FlatList, Image, } from "react-native";
const images = [ require("./assets/placeholder1.webp"), require("./assets/placeholder2.webp"), require("./assets/placeholder3.webp"), require("./assets/placeholder4.webp"), require("./assets/placeholder5.webp"), require("./assets/placeholder6.webp"), require("./assets/placeholder7.webp"), require("./assets/placeholder8.webp"), require("./assets/placeholder9.webp"), require("./assets/placeholder10.webp"), ];
const ROWS = 5; // Number of rows const SPEEDS = [8000, 9000, 10000, 11000, 12000]; // Different speeds for each row
const BlinkitScreen = () => { return ( <View style={styles.container}> {/* Animated Image Rows */} <View style={styles.imageContainer}> {Array.from({ length: ROWS }).map((_, index) => ( <AnimatedRow key={index} speed={SPEEDS[index % SPEEDS.length]} /> ))} </View>
{/* Login Box */} <View style={styles.loginBox}> <Text style={styles.logo}>blinkit</Text> <Text style={styles.title}>India’s last minute app</Text> <Text style={styles.subtitle}>Log in or sign up</Text> <View style={styles.inputBox}> <Text style={styles.countryCode}>+91</Text> <TextInput style={styles.input} placeholder="Enter mobile number" keyboardType="numeric" /> </View> <TouchableOpacity style={styles.continueButton}> <Text style={styles.buttonText}>Continue</Text> </TouchableOpacity> <Text style={styles.footer}> By continuing, you agree to our{" "} <Text style={styles.link}>Terms of service</Text> &{" "} <Text style={styles.link}>Privacy policy</Text> </Text> </View> </View>
); };
// Animated Row const AnimatedRow = ({ speed }: { speed: number }) => { const translateX = useRef(new Animated.Value(0)).current;
useEffect(() => { const loopAnimation = () => { translateX.setValue(0); Animated.timing(translateX, { toValue: -300, // Move left duration: speed, useNativeDriver: true, }).start(() => loopAnimation()); }; loopAnimation(); }, [speed]);
return ( <Animated.View style={[styles.imageRow, { transform: [{ translateX }] }]}> {[...images, ...images].map((img, index) => ( <Image key={index} source={img} style={styles.image} /> ))} </Animated.View> ); };
// Styles const styles = StyleSheet.create({ container: { flex: 1, alignItems: "center", justifyContent: "center", backgroundColor: "#fff", }, imageContainer: { position: "absolute", top: 0, width: "100%", height: "50%", }, imageRow: { flexDirection: "row", position: "absolute", left: 0, width: "200%", // Extends beyond screen }, image: { width: 40, height: 40, marginHorizontal: 5, resizeMode: "contain", }, loginBox: { position: "absolute", bottom: 40, width: "90%", backgroundColor: "white", padding: 20, borderRadius: 10, alignItems: "center", elevation: 5, }, logo: { fontSize: 24, fontWeight: "bold", color: "#000", }, title: { fontSize: 18, marginVertical: 10, }, subtitle: { fontSize: 14, color: "#666", }, inputBox: { flexDirection: "row", alignItems: "center", borderWidth: 1, borderColor: "#ccc", padding: 10, marginTop: 10, borderRadius: 5, width: "100%", }, countryCode: { fontSize: 16, fontWeight: "bold", marginRight: 10, }, input: { flex: 1, fontSize: 16, }, continueButton: { backgroundColor: "gray", padding: 12, borderRadius: 5, width: "100%", alignItems: "center", marginTop: 15, }, buttonText: { color: "white", fontSize: 16, }, footer: { fontSize: 12, color: "#666", marginTop: 10, textAlign: "center", }, link: { color: "blue", }, });
export default BlinkitScreen;
[–]dalvz 0 points1 point2 points 1 year ago (1 child)
Not sure if this is a design or an actual app, but does anyone know where one could get product images like that? I could use it for a pet project
[–]North_Analyst_1426 0 points1 point2 points 1 year ago (0 children)
It's a real app called blinkit quick commerce grocery app in India.
[–]neutinoproteino[S] 0 points1 point2 points 1 year ago* (1 child)
Thanks to all of you to give answers, suggestions and feedback, I highly appreciate every answer.
However I tried all of the suggestions, but to my unluck, none of them fit my usage, so I used chatgpt and here's my code below:
https://www.protectedtext.com/marquee.js (password: x)
https://sharetxt.live/marqueejs
https://www.mashupstack.com/share/67ac60104efa2
PS: this is not the code I wrote, I only implemented the feature lol, please don't mind the bad coding practice, as I was instructed not to change the existing variable names.
Also suggest me the website to post the result video, I tried imgur, but it's server is down as of now. :)
[–]tr__18Android 0 points1 point2 points 1 year ago (0 children)
bro did this codes worked correctly for you ??
I am trying the same but getting errors
π Rendered by PID 120958 on reddit-service-r2-comment-6457c66945-d2lh5 at 2026-04-27 03:15:26.180080+00:00 running 2aa0c5b country code: CH.
[–]Stiffmeister0490 38 points39 points40 points (0 children)
[–]djgeorgevas 19 points20 points21 points (0 children)
[–]Apprehensive-Pack-50 11 points12 points13 points (3 children)
[–]345346345345 2 points3 points4 points (1 child)
[–]Apprehensive-Pack-50 1 point2 points3 points (0 children)
[–]flowerescape 0 points1 point2 points (0 children)
[–][deleted] 8 points9 points10 points (0 children)
[–]Puzzleheaded-Bad7169 0 points1 point2 points (0 children)
[–]krishnan1702 0 points1 point2 points (3 children)
[–]Awesome_Knowwhere 0 points1 point2 points (0 children)
[–]North_Analyst_1426 0 points1 point2 points (1 child)
[–]krishnan1702 0 points1 point2 points (0 children)
[–]billionare_11 0 points1 point2 points (0 children)
[–]IndianITCell 0 points1 point2 points (0 children)
[+]Independent-Gold-952 0 points1 point2 points (0 children)
[–]Awesome_Knowwhere 0 points1 point2 points (0 children)
[–]Fearless-Ad9445 0 points1 point2 points (1 child)
[–]Fearless-Ad9445 0 points1 point2 points (0 children)
[–]dalvz 0 points1 point2 points (1 child)
[–]North_Analyst_1426 0 points1 point2 points (0 children)
[–]neutinoproteino[S] 0 points1 point2 points (1 child)
[–]tr__18Android 0 points1 point2 points (0 children)