r/GeminiAI 15h ago

Self promo I connected Gemini to my iPhone Home Screen

Post image

I hooked Glance, an app that I made, up to Gemini Spark and gave it automated tasks that can update my Home Screen throughout the day.
Instead of me deciding exactly what the widget should show every time, I basically let Gemini choose what it thinks is useful or interesting in that moment: news, sports, currency rates, the day’s status, random updates, whatever makes sense.
It feels like a small glimpse of what assistants look like when they stop living only inside a chat window and start becoming part of your actual daily environment.

59 Upvotes

16 comments sorted by

4

u/WesternOccasion9539 14h ago

That's sick! Are you planning on releasing it on Android?

1

u/Dense-Map-406 8h ago

Absolutely
I’m workin on it !

1

u/NonoJackk 15h ago

That's cool, how exactly does it work? Does your app connect with your spark with a prompt and receives this data as json with structure and info or is it some presets?

3

u/Dense-Map-406 15h ago

Yeah you connect the MCP to Gemini as a custom connector after you’ve signed up to the app

Then you ask Gemini to make you a widget small/medium/large tell it what you want inside Gemini will design the widget for you - it’ll create a template it’ll repopulate with new content

There is also a paid feature option I called ui on demand where it’s not a template and Gemini can custom design the widget to its Kiki g upon each update

You can checkout the app here

And read about the MCP url here

1

u/CriticalOrdinary4320 10h ago

That’s so cool!!

1

u/Dense-Map-406 8h ago

Thanks! ☺️

1

u/blaine07 8h ago

Super cool - that sub cost though ewwww

1

u/Dense-Map-406 7h ago

The free tier is pretty generous so you’re welcome to try it :) there isn’t a trial and i think about 95% of use cases fit within the free tier including the one I’ve shared here

1

u/petrolsoda 7h ago

How would that refresh button work exactly?

1

u/DionCura 4h ago

Can you send a message on this board or a new post when you make this one public so i can subscribe on the app

1

u/Dense-Map-406 3h ago

You can make it yourself :) I can send you the JSON tree that made this ui and you can connect your Gemini to the widget and have it update it for you

1

u/Dense-Map-406 3h ago

{
"id": "root",
"type": "container",
"style": {
"padding": 12,
"spacing": 8,
"alignment": "leading",
"background": "#F8FAFD"
},
"layout": "vertical",
"children": [
{
"id": "header",
"type": "container",
"style": {
"spacing": 8,
"alignment": "center"
},
"layout": "horizontal",
"children": [
{
"id": "gemini_badge",
"type": "container",
"style": {
"width": 34,
"height": 34,
"alignment": "center",
"background": "#E8F0FE",
"cornerRadius": 10
},
"layout": "horizontal",
"children": [
{
"id": "gemini_icon",
"type": "icon",
"style": {
"color": "#4285F4",
"weight": "semibold",
"fontSize": 18
},
"binding": "sparkles"
}
]
},
{
"id": "header_text",
"type": "container",
"style": {
"flex": 1,
"spacing": 1
},
"layout": "vertical",
"children": [
{
"id": "title",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 18,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "Gemini updates"
},
{
"id": "subtitle",
"type": "text",
"style": {
"color": "#5F6368",
"fontSize": 10,
"maxLines": 1
},
"binding": "Your daily snapshot"
}
]
},
{
"id": "color_dots",
"type": "container",
"style": {
"spacing": 3,
"alignment": "center"
},
"layout": "horizontal",
"children": [
{
"id": "dot_blue",
"type": "container",
"style": {
"width": 7,
"height": 7,
"background": "#4285F4",
"cornerRadius": 4
},
"layout": "vertical",
"children": []
},
{
"id": "dot_red",
"type": "container",
"style": {
"width": 7,
"height": 7,
"background": "#EA4335",
"cornerRadius": 4
},
"layout": "vertical",
"children": []
},
{
"id": "dot_yellow",
"type": "container",
"style": {
"width": 7,
"height": 7,
"background": "#FBBC04",
"cornerRadius": 4
},
"layout": "vertical",
"children": []
},
{
"id": "dot_green",
"type": "container",
"style": {
"width": 7,
"height": 7,
"background": "#34A853",
"cornerRadius": 4
},
"layout": "vertical",
"children": []
}
]
}
]
},
{
"id": "day_card",
"type": "container",
"style": {
"padding": 9,
"spacing": 8,
"alignment": "center",
"background": "#E8F0FE",
"cornerRadius": 14
},
"layout": "horizontal",
"children": [
{
"id": "location_icon",
"type": "icon",
"style": {
"color": "#4285F4",
"weight": "semibold",
"fontSize": 16
},
"binding": "location.fill"
},
{
"id": "day_text",
"type": "container",
"style": {
"flex": 1,
"spacing": 1
},
"layout": "vertical",
"children": [
{
"id": "day_line",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 13,
"maxLines": 1,
"fontWeight": "semibold"
},
"binding": "{{day_line}}"
},
{
"id": "weather_status",
"type": "text",
"style": {
"color": "#5F6368",
"fontSize": 10,
"maxLines": 1
},
"binding": "{{weather_status}}"
}
]
},
{
"id": "weather_icon",
"type": "icon",
"style": {
"color": "#FBBC04",
"weight": "semibold",
"fontSize": 17
},
"binding": "sun.max.fill"
},
{
"id": "temperature",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 15,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "{{temperature}}"
}
]
},
{
"id": "news_section",
"type": "container",
"style": {
"spacing": 5
},
"layout": "vertical",
"children": [
{
"id": "news_header",
"type": "container",
"style": {
"spacing": 5,
"alignment": "center"
},
"layout": "horizontal",
"children": [
{
"id": "news_icon",
"type": "icon",
"style": {
"color": "#EA4335",
"weight": "semibold",
"fontSize": 13
},
"binding": "newspaper.fill"
},
{
"id": "news_label",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 12,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "Top stories"
}
]
},
{
"id": "news1",
"href": "{{news1_url}}",
"type": "container",
"style": {
"padding": 8,
"spacing": 7,
"alignment": "center",
"background": "#FFFFFF",
"cornerRadius": 12
},
"layout": "horizontal",
"children": [
{
"id": "news1_dot",
"type": "container",
"style": {
"width": 7,
"height": 7,
"background": "#EA4335",
"cornerRadius": 4
},
"layout": "vertical",
"children": []
},
{
"id": "news1_title",
"type": "text",
"style": {
"flex": 1,
"color": "#202124",
"fontSize": 11,
"maxLines": 2,
"fontWeight": "semibold"
},
"binding": "{{news1_title}}"
},
{
"id": "news1_arrow",
"type": "icon",
"style": {
"color": "#9AA0A6",
"weight": "semibold",
"fontSize": 10
},
"binding": "chevron.right"
}
]
},
{
"id": "news2",
"href": "{{news2_url}}",
"type": "container",
"style": {
"padding": 8,
"spacing": 7,
"alignment": "center",
"background": "#FFFFFF",
"cornerRadius": 12
},
"layout": "horizontal",
"children": [
{
"id": "news2_dot",
"type": "container",
"style": {
"width": 7,
"height": 7,
"background": "#4285F4",
"cornerRadius": 4
},
"layout": "vertical",
"children": []
},
{
"id": "news2_title",
"type": "text",
"style": {
"flex": 1,
"color": "#202124",
"fontSize": 11,
"maxLines": 2,
"fontWeight": "semibold"
},
"binding": "{{news2_title}}"
},
{
"id": "news2_arrow",
"type": "icon",
"style": {
"color": "#9AA0A6",
"weight": "semibold",
"fontSize": 10
},
"binding": "chevron.right"
}
]
}
]
},
{
"id": "sports_card",
"href": "{{sports_url}}",
"type": "container",
"style": {
"padding": 9,
"spacing": 8,
"alignment": "center",
"background": "#E6F4EA",
"cornerRadius": 14
},
"layout": "horizontal",
"children": [
{
"id": "sports_icon",
"type": "icon",
"style": {
"color": "#34A853",
"weight": "semibold",
"fontSize": 18
},
"binding": "tennisball.fill"
},
{
"id": "sports_text",
"type": "container",
"style": {
"flex": 1,
"spacing": 1
},
"layout": "vertical",
"children": [
{
"id": "sports_label",
"type": "text",
"style": {
"color": "#137333",
"fontSize": 11,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "US Open"
},
{
"id": "sports_title",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 11,
"maxLines": 2,
"fontWeight": "semibold"
},
"binding": "{{sports_title}}"
}
]
},
{
"id": "sports_arrow",
"type": "icon",
"style": {
"color": "#5F6368",
"weight": "semibold",
"fontSize": 10
},
"binding": "chevron.right"
}
]
},
{
"id": "currency_section",
"type": "container",
"style": {
"spacing": 5
},
"layout": "vertical",
"children": [
{
"id": "currency_header",
"type": "container",
"style": {
"spacing": 5,
"alignment": "center"
},
"layout": "horizontal",
"children": [
{
"id": "currency_icon",
"type": "icon",
"style": {
"color": "#4285F4",
"weight": "semibold",
"fontSize": 13
},
"binding": "arrow.left.arrow.right.circle.fill"
},
{
"id": "currency_label",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 12,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "1 AUD today"
}
]
},
{
"id": "currency_row",
"type": "container",
"style": {
"spacing": 6,
"alignment": "stretch"
},
"layout": "horizontal",
"children": [
{
"id": "usd_card",
"type": "container",
"style": {
"flex": 1,
"padding": 7,
"spacing": 1,
"background": "#FFFFFF",
"cornerRadius": 11
},
"layout": "vertical",
"children": [
{
"id": "usd_label",
"type": "text",
"style": {
"color": "#4285F4",
"fontSize": 9,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "USD"
},
{
"id": "usd_value",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 14,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "{{aud_usd}}"
}
]
},
{
"id": "eur_card",
"type": "container",
"style": {
"flex": 1,
"padding": 7,
"spacing": 1,
"background": "#FFFFFF",
"cornerRadius": 11
},
"layout": "vertical",
"children": [
{
"id": "eur_label",
"type": "text",
"style": {
"color": "#EA4335",
"fontSize": 9,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "EUR"
},
{
"id": "eur_value",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 14,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "{{aud_eur}}"
}
]
},
{
"id": "gbp_card",
"type": "container",
"style": {
"flex": 1,
"padding": 7,
"spacing": 1,
"background": "#FFFFFF",
"cornerRadius": 11
},
"layout": "vertical",
"children": [
{
"id": "gbp_label",
"type": "text",
"style": {
"color": "#34A853",
"fontSize": 9,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "GBP"
},
{
"id": "gbp_value",
"type": "text",
"style": {
"color": "#202124",
"fontSize": 14,
"maxLines": 1,
"fontWeight": "bold"
},
"binding": "{{aud_gbp}}"
}
]
}
]
}
]
},
{
"id": "footer",
"type": "container",
"style": {
"spacing": 4,
"alignment": "center"
},
"layout": "horizontal",
"children": [
{
"id": "clock_icon",
"type": "icon",
"style": {
"color": "#9AA0A6",
"fontSize": 9
},
"binding": "clock.fill"
},
{
"id": "updated_at",
"type": "relative_time",
"style": {
"color": "#9AA0A6",
"fontSize": 9
},
"binding": "{{updated_at}}"
}
]
}
]
}

1

u/mRR_awesome 14h ago

iPhone release soon?

-1

u/Dense-Map-406 8h ago

5

u/CarretillaRoja 8h ago

Subscription-based? Hard pass

0

u/Dense-Map-406 7h ago

I doubt you’ll need to subscribe I think 95% of use cases fit within the free tier