كيف تبني تطبيقات أندرويد ذكية وفعالة بالذكاء الاصطناعي؟

كيف تبني تطبيقات أندرويد ذكية وفعالة بالذكاء الاصطناعي؟

丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 賵鬲胤賵賷乇 兀賳丿乇賵賷丿: 亘賳丕亍 鬲胤亘賷賯丕鬲 匕賰賷丞貙 賲賵孬賵賯丞貙 賵賮毓丕賱丞 賲毓 Jetpack Compose

賷卮賴丿 毓丕賱賲 鬲胤賵賷乇 鬲胤亘賷賯丕鬲 丕賱兀噩賴夭丞 丕賱賲丨賲賵賱丞 鬲丨賵賱丕賸 噩匕乇賷丕賸 亘賮囟賱 丕賱鬲胤賵乇 丕賱爻乇賷毓 賱賱匕賰丕亍 丕賱丕氐胤賳丕毓賷. 賱賲 鬲毓丿 丕賱鬲胤亘賷賯丕鬲 賲噩乇丿 兀丿賵丕鬲 孬丕亘鬲丞貙 亘賱 鬲鬲噩賴 賳丨賵 兀賳馗賲丞 匕賰賷丞 匕丕鬲賷丞 丕賱鬲卮睾賷賱貙 賯丕丿乇丞 毓賱賶 丕賱鬲賮丕毓賱 亘賲乇賵賳丞 賵鬲賯丿賷賲 鬲噩丕乇亘 賲禺氐氐丞 賱賱賲爻鬲禺丿賲賷賳. 賷賵丕噩賴 丕賱賲胤賵乇賵賳 鬲丨丿賷丕鬲 賰亘賷乇丞 賮賷 亘賳丕亍 賴匕賴 丕賱鬲胤亘賷賯丕鬲 丕賱賲毓賯丿丞貙 亘丿亍丕賸 賲賳 廿丿丕乇丞 爻賷乇 丕賱毓賲賱 丕賱胤賵賷賱 賵丨鬲賶 囟賲丕賳 丕賱兀丿丕亍 丕賱賮丕卅賯 賵鬲噩乇亘丞 丕賱賲爻鬲禺丿賲 丕賱爻賱爻丞. 賱賰賳 賲毓 馗賴賵乇 兀胤乇 毓賲賱 丨丿賷孬丞 賲孬賱 Jetpack Compose 賵亘乇賵鬲賵賰賵賱丕鬲 丕鬲氐丕賱 匕賰賷丞貙 兀氐亘丨 亘丕賱廿賲賰丕賳 鬲丨賯賷賯 賴匕賴 丕賱乇丐賷丞 丕賱胤賲賵丨丞. 賷爻鬲賰卮賮 賴匕丕 丕賱賲賯丕賱 賰賷賮 賷賲賰賳 賱賱賲胤賵乇賷賳 丕賱丕爻鬲賮丕丿丞 賲賳 兀丨丿孬 丕賱鬲賯賳賷丕鬲 賱亘賳丕亍 鬲胤亘賷賯丕鬲 兀賳丿乇賵賷丿 匕賰賷丞 賵賲賵孬賵賯丞 賵賮毓丕賱丞貙 賲丿毓賵賲丞 亘丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷貙 賲毓 丕賱鬲乇賰賷夭 毓賱賶 爻賷乇 丕賱毓賲賱 丕賱賵賰賷賱 Agentic Workflows貙 賵賴賳丿爻丞 賵丕噩賴丞 丕賱賲爻鬲禺丿賲 AI-Native UI貙 賵鬲丨爻賷賳 丕賱兀丿丕亍 毓賱賶 賳胤丕賯 賵丕爻毓貙 賵氐賵賱丕賸 廿賱賶 鬲禺氐賷氐 鬲噩乇亘丞 丕賱賲爻鬲禺丿賲 亘卮賰賱 賱賲 賷爻亘賯 賱賴 賲孬賷賱.

賲賮賴賵賲 鬲賯賳賷 鬲賵囟賷丨賷 賱賱賲丨賵乇 丕賱兀賵賱

孬賵乇丞 丕賱賵賰賱丕亍 丕賱匕賰賷丞: 亘賳丕亍 鬲胤亘賷賯丕鬲 兀賳丿乇賵賷丿 匕丕鬲賷丞 丕賱鬲卮睾賷賱

睾丕賱亘丕賸 賲丕 鬲鬲胤賱亘 丕賱賲賴丕賲 丕賱賲毓賯丿丞 賮賷 丕賱鬲胤亘賷賯丕鬲貙 賲孬賱 丨噩夭 賲爻丕乇 乇丨賱丞 賰丕賲賱 賷鬲囟賲賳 鬲賳爻賷賯 丕賱乇丨賱丕鬲 丕賱噩賵賷丞 賵丕賱賮賳丕丿賯 賵鬲匕丕賰乇 丕賱賲鬲丕丨賮貙 兀賰孬乇 賲賳 賲噩乇丿 噩賱爻丞 賵丕丨丿丞 毓賱賶 丕賱噩賴丕夭. 廿匕丕 鬲賲 鬲卮睾賷賱 賴匕賴 丕賱毓賲賱賷丕鬲 賲鬲毓丿丿丞 丕賱禺胤賵丕鬲 賲亘丕卮乇丞 毓賱賶 丕賱賴丕鬲賮 丕賱賲丨賲賵賱貙 賮賯丿 賷鬲賲 廿睾賱丕賯 丕賱鬲胤亘賷賯 賵賮賯丿丕賳 丕賱鬲賯丿賲. 賴賳丕 賷兀鬲賷 丿賵乇 爻賷乇 丕賱毓賲賱 丕賱賵賰賷賱 (Agentic Workflows) 丕賱賲爻鬲囟丕賮 賮賷 丕賱爻丨丕亘丞貙 賵丕賱匕賷 賷賯丿賲 賲夭丕賷丕 丨丕爻賲丞:

  • 丕賱鬲賳賮賷匕 賮賷 丕賱禺賱賮賷丞: 鬲毓賲賱 賵賰賱丕亍 丕賱丨噩夭 亘卮賰賱 賲爻鬲賯賱 賮賷 丕賱爻丨丕亘丞貙 賲賲丕 賷囟賲賳 毓丿賲 賮賯丿丕賳 丕賱鬲賯丿賲 兀亘丿丕賸 丨鬲賶 賱賵 丕賳鬲賯賱 鬲胤亘賷賯 丕賱賴丕鬲賮 丕賱賲丨賲賵賱 廿賱賶 丕賱禺賱賮賷丞 兀賵 賮賯丿 丕賱丕鬲氐丕賱 亘丕賱廿賳鬲乇賳鬲.
  • 鬲賳爻賷賯 丕賱賵賰賱丕亍 丕賱賲鬲毓丿丿賷賳 丕賱賲毓賯丿: 賷賲賰賳 賱賵賰賷賱 賲賳爻賯 鬲賮賵賷囟 丕賱丨噩賵夭丕鬲 賱賵賰賱丕亍 賮乇毓賷賷賳 賲鬲禺氐氐賷賳 賵丕賱鬲毓丕賲賱 賲毓 丕賱鬲亘毓賷丕鬲 亘賷賳賴賲.
  • 鬲賯丿賷賲 賵丕噩賴丞 賲爻鬲禺丿賲 賲爻鬲賯賱丞 毓賳 丕賱毓賲賷賱: 鬲氐賮 丕賱賵丕噩賴丞 丕賱禺賱賮賷丞 賴賷賰賱 丕賱賵丕噩賴丞 丿賷賳丕賲賷賰賷丕賸貙 賲賲丕 賷鬲賷丨 鬲丨丿賷孬 鬲禺胤賷胤 賵丕噩賴丞 丕賱賲爻鬲禺丿賲 丿賵賳 廿氐丿丕乇 賳爻禺丞 毓賲賷賱 噩丿賷丿丞.

賱丕爻鬲睾賱丕賱 賴匕賴 丕賱廿賲賰丕賳賷丕鬲貙 賷賲賰賳 賱賱賲胤賵乇賷賳 丕爻鬲禺丿丕賲 賵賰賱丕亍 丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 毓亘乇 賲噩賲賵毓丞 鬲胤賵賷乇 丕賱賵賰賱丕亍 (Agent Development Kit - ADK). 賷鬲賷丨 ADK 鬲毓乇賷賮 丕賱賵賰賱丕亍 賵鬲噩賴賷夭賴賲 亘兀丿賵丕鬲 (Python function tools) 賱賱丕爻鬲毓賱丕賲 毓賳 賯賵丕毓丿 丕賱亘賷丕賳丕鬲 賵鬲賳賮賷匕 丕賱丨噩賵夭丕鬲. 賷丿賷乇 ADK 禺胤賵丕鬲 丕賱鬲賳賮賷匕 鬲賱賯丕卅賷丕賸貙 賵賷鬲鬲亘毓 爻賷丕賯 丕賱賲丨丕丿孬丞貙 賵賷賵噩賴 丕賱乇爻丕卅賱 亘賷賳 丕賱賲爻鬲禺丿賲 賵丕賱賳賲賵匕噩貙 賵賷賳賮匕 丕賱兀丿賵丕鬲 丕賱賲爻噩賱丞 毓賳丿賲丕 賷胤賱亘賴丕 丕賱賳賲賵匕噩. 賴匕丕 賷爻賲丨 賱賱賲胤賵乇賷賳 亘丕賱鬲乇賰賷夭 毓賱賶 賰鬲丕亘丞 賲賳胤賯 廿噩乇丕卅賷 賳馗賷賮 亘賷賳賲丕 賷鬲毓丕賲賱 丕賱廿胤丕乇 賲毓 丕賱鬲賳爻賷賯 賮賷 丕賱禺賱賮賷丞.

亘賳丕亍 賲爻丕毓丿 AI 賲賵孬賵賯: 丿乇賵爻 賲賳 Claude API

亘賳丕亍 賲爻丕毓丿 AI 賲賵孬賵賯 賷鬲胤賱亘 兀賰孬乇 賲賳 賲噩乇丿 廿乇爻丕賱 賲胤丕賱亘丞 賵毓乇囟 丕賱丕爻鬲噩丕亘丞. 賷鬲囟賲賳 匕賱賰 廿丿丕乇丞 爻噩賱 丕賱賲丨丕丿孬丕鬲貙 賵鬲賵賮賷乇 丕賱爻賷丕賯 匕賷 丕賱氐賱丞貙 賵丕爻鬲禺丿丕賲 丕賱兀丿賵丕鬲 亘兀賲丕賳貙 賵丕賱鬲毓丕賲賱 賲毓 兀賳賵丕毓 丕賱丕爻鬲噩丕亘丕鬲 丕賱賲禺鬲賱賮丞貙 賵鬲賯賷賷賲 賲丿賶 賮丕卅丿丞 丕賱賲禺乇噩丕鬲. 鬲鬲囟賲賳 丕賱賲賲丕乇爻丕鬲 丕賱噩賷丿丞:

  • 廿丿丕乇丞 爻噩賱 丕賱賲丨丕丿孬丕鬲: 廿乇爻丕賱 丕賱爻噩賱 匕賷 丕賱氐賱丞 賲毓 賰賱 胤賱亘貙 賲毓 禺賷丕乇丕鬲 賱鬲賯賱賷賲 丕賱爻噩賱 兀賵 鬲賱禺賷氐 丕賱賲丨丕丿孬丕鬲 丕賱賯丿賷賲丞 賱賱丨賮丕馗 毓賱賶 丨噩賲 丕賱賲丿禺賱丕鬲 賵丕賱鬲乇賰賷夭.
  • 賲胤丕賱亘丕鬲 賲賳馗賲丞: 丕爻鬲禺丿丕賲 毓賱丕賲丕鬲 鬲卮亘賴 XML 賱鬲毓乇賷賮 兀噩夭丕亍 丕賱賲胤丕賱亘丞 亘賵囟賵丨 (賲孬賱 丕賱賲丕丿丞 丕賱賲乇噩毓賷丞貙 丕賱亘賷丕賳丕鬲貙 丕賱鬲毓賱賷賲丕鬲).
  • 賲胤丕賱亘丕鬲 丕賱賳馗丕賲: 鬲毓乇賷賮 丕賱爻賱賵賰 丕賱毓丕賲 賱賱賲爻丕毓丿 (賲孬賱 丕賱賳亘乇丞貙 丕賱爻賷丕爻丕鬲) 亘卮賰賱 賲賳賮氐賱.
  • 廿囟丕賮丞 丕賱兀丿賵丕鬲: 鬲夭賵賷丿 丕賱賳賲賵匕噩 亘賵馗丕卅賮 賲丨丿丿丞 (賲孬賱 get_order_status) 賱賱鬲賮丕毓賱 賲毓 丕賱兀賳馗賲丞 丕賱禺丕乇噩賷丞. 賷噩亘 毓賱賶 丕賱鬲胤亘賷賯 丕賱鬲丨賯賯 賲賳 氐丨丞 丕爻賲 丕賱兀丿丕丞 賵丕賱賵爻丕卅胤 賵兀匕賵賳丕鬲 丕賱賲爻鬲禺丿賲 賯亘賱 丕賱鬲賳賮賷匕.
  • 丕賱鬲毓丕賲賱 賲毓 丕賱丕爻鬲噩丕亘丕鬲 賲鬲毓丿丿丞 丕賱賰鬲賱: 亘丿賱丕賸 賲賳 丕賮鬲乇丕囟 兀賳 丕賱丕爻鬲噩丕亘丞 賴賷 賳氐 賵丕丨丿貙 賷噩亘 賮丨氐 賰賱 賰鬲賱丞 (賳氐貙 丕爻鬲禺丿丕賲 兀丿丕丞貙 鬲賮賰賷乇) 亘卮賰賱 賮乇丿賷.

賴賳丕 賲孬丕賱 毓賱賶 賰賷賮賷丞 鬲毓乇賷賮 賵賰賷賱 亘爻賷胤 賵鬲卮睾賷賱賴 亘丕爻鬲禺丿丕賲 ADK:


# android/booking-server/booking_server.py

from google.adk import Agent
from google.adk.runners import InMemoryRunner
from google.adk.tools import FunctionTool

def search_flights(destination: str, date: str) -> list[str]:
    # In production, query your flight database
    return ["10:00 AM", "2:00 PM"]

def reserve_flight(flight_time: str) -> str:
    # In production, save the reservation transaction
    return "Reserved flight at " + flight_time

flight_agent = Agent(
    name="Flight Booker",
    model="gemini-3.1-flash-lite",
    instruction="Help the user search for flights and book a reservation.",
    tools=[
        FunctionTool(search_flights),
        FunctionTool(reserve_flight, require_confirmation=True)
    ]
)

# Run the agent in memory (simplified for example)
runner = InMemoryRunner(flight_agent)
# async for event in runner.run_async(user_id=user_id, session_id=session_id):
#     if event.content:
#         print("Agent said:", event.content)

賱乇亘胤 賴匕丕 丕賱賵賰賷賱 丕賱禺賱賮賷 亘鬲胤亘賷賯 兀賳丿乇賵賷丿貙 賳丨鬲丕噩 廿賱賶 賯賳賵丕鬲 丕鬲氐丕賱 賲賵丨丿丞. 亘乇賵鬲賵賰賵賱 AG-UI 賴賵 胤亘賯丞 賳賯賱 孬賳丕卅賷丞 丕賱丕鬲噩丕賴 鬲賵丨丿 兀賳賵丕毓 丕賱乇爻丕卅賱 亘賷賳 丕賱賵賰賱丕亍 賵毓賲賱丕亍 賵丕噩賴丞 丕賱賲爻鬲禺丿賲貙 賲賲丕 賷鬲賷丨 賱賱賵賰賷賱 廿亘賱丕睾 丕賱毓賲賷賱 亘兀丨丿丕孬 丿賵乇丞 丕賱丨賷丕丞 賵丕賱乇爻丕卅賱 丕賱賳氐賷丞 賵丕爻鬲丿毓丕亍丕鬲 丕賱兀丿賵丕鬲. 兀賲丕 亘乇賵鬲賵賰賵賱 A2UI 賮賷爻賲丨 賱賱賵賰賱丕亍 亘賵氐賮 賲賰賵賳丕鬲 賵丕噩賴丞 丕賱賲爻鬲禺丿賲 賱鬲賯丿賷賲賴丕 毓賱賶 丕賱毓賲賷賱 丿賷賳丕賲賷賰賷丕賸貙 賲賲丕 賷賮賰 丕賱丕乇鬲亘丕胤 亘賷賳 鬲賮丕氐賷賱 丕賱鬲賳賮賷匕 丕賱賲乇卅賷 賱賱毓賲賷賱 賵丨丕賱丞 爻賷乇 毓賲賱 丕賱賵賰賷賱.

賳氐賷丨丞 賱賱賲胤賵乇賷賳 / Dev Tip: 毓賳丿 亘賳丕亍 賵賰賱丕亍 AI貙 賯賲 亘鬲囟賲賷賳 丌賱賷丕鬲 賯賵賷丞 賱賱鬲丨賯賯 賲賳 丕賱氐丨丞 (Validation) 賮賷 賰賱 兀丿丕丞 (Tool). 鬲丨賯賯 賲賳 賲丿禺賱丕鬲 丕賱兀丿丕丞 賵賳賵毓賴丕 賵氐賱丕丨賷鬲賴丕貙 賵乇丕噩毓 兀匕賵賳丕鬲 丕賱賲爻鬲禺丿賲 賯亘賱 丕賱爻賲丕丨 賱賱賵賰賷賱 亘鬲賳賮賷匕 兀賷 廿噩乇丕亍丕鬲 丨爻丕爻丞. 賴匕丕 賷賲賳毓 丕賱孬睾乇丕鬲 丕賱兀賲賳賷丞 賵賷囟賲賳 兀賳 丕賱賵賰賷賱 賷毓賲賱 囟賲賳 丕賱丨丿賵丿 丕賱賲鬲賵賯毓丞.

Jetpack Compose: 丨噩乇 丕賱夭丕賵賷丞 賱賵丕噩賴丕鬲 丕賱賲爻鬲禺丿賲 丕賱賲丿毓賵賲丞 亘丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷

賮賷 乇丨賱丞 鬲丨丿賷孬 囟禺賲丞貙 賯丕賲鬲 賮乇賯 賴賳丿爻丞 Instagram Direct 亘鬲亘賳賷 Jetpack Compose 賱亘賳丕亍 亘賳賷丞 賵丕噩賴丞 賲爻鬲禺丿賲 兀氐賱賷丞 賱賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 (AI-native UI architecture). 賱賲 賷賰賳 賴匕丕 賲噩乇丿 鬲丨丿賷孬 賱賱賵丕噩賴丞貙 亘賱 廿毓丕丿丞 鬲氐賲賷賲 賰丕賲賱丞 兀丿鬲 廿賱賶 賳鬲丕卅噩 賲亘賴乇丞:

  • 賰賵丿 兀賯賱 亘賳爻亘丞 50%: 賵丕噩賴丞 賲爻鬲禺丿賲 兀氐睾乇 丨噩賲丕賸 亘賰孬賷乇貙 賲賲丕 賷賯賱賱 賲賳 毓亘亍 丕賱氐賷丕賳丞 賵賲爻丕丨丞 丕賱兀禺胤丕亍 丕賱賲丨鬲賲賱丞.
  • 鬲賯賱賷賱 賵賯鬲 鬲賳賮賷匕 賵賰賷賱 AI 亘賳爻亘丞 35%.
  • 32% 毓丿丿 兀賯賱 賲賳 丕賱鬲亘丕丿賱丕鬲 亘賷賳 丕賱賲賴賳丿爻 賵丕賱賵賰賷賱.
  • 丕賳禺賮丕囟 鬲賰賱賮丞 丕賱乇賲賵夭 (Token Cost) 亘賳爻亘丞 33% 賱賰賱 噩賱爻丞 賵賰賷賱.

賷毓賵丿 賴匕丕 丕賱賳噩丕丨 廿賱賶 丕賱胤亘賷毓丞 丕賱鬲毓亘賷乇賷丞 (Declarative) 賱賭 Jetpack Compose貙 丕賱鬲賷 鬲噩毓賱 丕賱賰賵丿 賲賵噩夭丕賸貙 賷賲賰賳 丕賱鬲賳亘丐 亘賴貙 賵兀爻賴賱 賴賷賰賱賷丕賸 毓賱賶 賳賲丕匕噩 丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 賮賴賲賴貙 賲毓 丌孬丕乇 噩丕賳亘賷丞 兀賯賱 賵丨丕賱丞 囟賲賳賷丞 兀賵囟丨 賵丨丿賵丿 賲賰賵賳丕鬲 兀賵囟丨. 賱囟賲丕賳 賰賮丕亍丞 丕賱賰賵丿 丕賱匕賷 賷賵賱丿賴 丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷貙 賷噩亘 毓賱賶 丕賱賲胤賵乇賷賳 丕賱丕賱鬲夭丕賲 亘賯丕毓丿鬲賷賳 毓賲賱賷鬲賷賳:

  • 鬲賯賱賷賱 丕賱丕毓鬲賲丕丿 毓賱賶 丕賱爻賷丕賯 丕賱賲禺氐氐: 賰賱賲丕 夭丕丿鬲 丕賱賲毓乇賮丞 丕賱禺丕氐丞 亘賯丕毓丿丞 丕賱賰賵丿 丕賱鬲賷 賷丨鬲丕噩賴丕 賵賰賷賱 AI 賱廿噩乇丕亍 鬲睾賷賷乇 氐丨賷丨貙 丕賳禺賮囟鬲 噩賵丿丞 賲禺乇噩丕鬲賴.
  • 賷噩亘 兀賳 鬲賮乇囟 賯丕毓丿丞 丕賱賰賵丿 AI-first 丨丿賵丿賴丕 丕賱禺丕氐丞: 賷噩亘 兀賳 賷賰賵賳 丕賱鬲氐賲賷賲 亘丨丿 匕丕鬲賴 賴賵 丕賱匕賷 賷賵噩賴 丕賱賵賰賱丕亍 賳丨賵 丕賱賰賵丿 丕賱氐丨賷丨 毓丕賱賷 丕賱噩賵丿丞.

賲孬丕賱 毓賱賶 賰賷賮賷丞 鬲噩賳亘 丕賱賲卮賰賱丕鬲 丕賱卮丕卅毓丞 賮賷 Jetpack Compose:


// 鬲噩賳亘 賴匕丕 丕賱賳賲胤 丨賷孬 賷鬲賲 禺賱胤 丕賱爻賷丕賯丕鬲 Imperative 賵 Declarative
class ChatItem(val features: FeatureFlagProvider) : RecyclerViewItem {
聽聽var isPinned: Boolean = false // 丨丕賱丞 賯丕亘賱丞 賱賱鬲睾賷賷乇 禺丕乇噩 ChatUiState
聽聽override fun onBind(holder: ComposeViewHolder, uiState: ChatUiState) {
聽聽聽聽val isPinnedChatsEnabled = features.isEnabled("pinned_chats_feature")
聽聽聽聽holder.composeView.setContent {
聽聽聽聽聽聽if (isPinnedChatsEnabled) {
聽聽聽聽聽聽聽聽Button(onClick = { isPinned = !isPinned }) { /* ... */ }
聽聽聽聽聽聽}
聽聽聽聽}
聽聽}
}

// 丕賱賳賲胤 丕賱賲賮囟賱 賮賷 Jetpack Compose
class ChatItem(
聽聽val features: FeatureFlagProvider,
聽聽val onPin: (Boolean) -> Unit,
) : ComposeItem(
聽聽content = { uiState: ChatUiState ->
聽聽聽聽val isPinnedChatsEnabled = features.isEnabled("pinned_chats_feature")
聽聽聽聽if (isPinnedChatsEnabled) {
聽聽聽聽聽聽Button(onClick = { onPin(!uiState.isPinned) }) {
聽聽聽聽聽聽聽聽Text(if (uiState.isPinned) "Unpin" else "Pin")
聽聽聽聽聽聽}
聽聽聽聽}
聽聽},
)
賲賱丕丨馗丞 賴賳丿爻賷丞: 毓賳丿 丿賲噩 Jetpack Compose 賮賷 賲卮乇賵毓 View-based 賰亘賷乇貙 賯丿 鬲亘丿賵 丕賱賲賰賵賳丕鬲 丕賱氐睾賷乇丞 爻賴賱丞貙 賱賰賳賴丕 鬲夭賷丿 賲賳 鬲賰賱賮丞 丕賱鬲賮丕毓賱 (Interop Cost). 賱賱丨氐賵賱 毓賱賶 兀賮囟賱 兀丿丕亍 賵鬲賰丕賲賱 爻賱爻貙 丕爻鬲賴丿賮 鬲乇丨賷賱 兀爻胤丨 賰丕賲賱丞 亘丿賱丕賸 賲賳 賲賰賵賳丕鬲 賮乇丿賷丞 賱鬲賯賱賷賱 賮賵丕氐賱 丕賱噩爻乇 賵鬲賮毓賷賱 鬲丨爻賷賳丕鬲 丕賱兀丿丕亍 丕賱兀氐賱賷丞 賱賭 Compose.
賲賮賴賵賲 鬲賯賳賷 鬲賵囟賷丨賷 賱賱賲丨賵乇 丕賱孬丕賳賷

鬲丨爻賷賳 丕賱兀丿丕亍 毓賱賶 賳胤丕賯 賵丕爻毓: 丿乇賵爻 賲賳 廿賳爻鬲睾乇丕賲 丿丕賷乇賰鬲

鬲毓丿 丕賱兀丿丕亍 兀賲乇丕賸 亘丕賱睾 丕賱兀賴賲賷丞 賮賷 鬲胤亘賷賯丕鬲 亘賴匕丕 丕賱丨噩賲貙 賵賯丿 乇賰夭 賮乇賷賯 Instagram Direct 毓賱賶 孬賱丕孬丞 賲賯丕賷賷爻 乇卅賷爻賷丞 兀孬賳丕亍 丕賱鬲乇丨賷賱 廿賱賶 Compose:

  • 賵賯鬲 丕賱鬲賮丕毓賱 (Time to interact): 丕賱賲丿丞 丕賱夭賲賳賷丞 亘賷賳 賮鬲丨 丕賱卮丕卮丞 賵丕賱賯丿乇丞 毓賱賶 丕爻鬲禺丿丕賲賴丕.
  • 賵賯鬲 丕賱鬲丨賲賷賱 丕賱賰丕賲賱 (Time to fully load): 丕賱賲丿丞 丕賱夭賲賳賷丞 丨鬲賶 賷鬲賲 鬲丨賲賷賱 賰賱 丕賱賲丨鬲賵賶 亘丕賱賰丕賲賱 (賲孬賱 丕賱氐賵乇).
  • 兀丿丕亍 丕賱鬲賲乇賷乇 (Scroll performance): 賲丿賶 爻賱丕爻丞 丕賱鬲賲乇賷乇 丿賵賳 賮賯丿丕賳 丕賱廿胤丕乇丕鬲 (dropped frames).

兀馗賴乇鬲 丕賱亘賷丕賳丕鬲 兀賳 Jetpack Compose 兀丿賶 廿賱賶 鬲丨爻賷賳丕鬲 賰亘賷乇丞貙 禺氐賵氐丕賸 毓賳丿 鬲乇丨賷賱 兀爻胤丨 賰丕賲賱丞 亘丿賱丕賸 賲賳 賲賰賵賳丕鬲 氐睾賷乇丞. 賲賳 兀亘乇夭 丕賱廿囟丕賮丕鬲 廿賱賶 Jetpack Compose貙 賳鬲賷噩丞 丕賱卮乇丕賰丞 亘賷賳 Google 賵 Meta貙 賵丕賱鬲賷 爻丕賴賲鬲 賮賷 鬲丨爻賷賳 丕賱兀丿丕亍:

  • 丕賱鬲乇賰賷亘 丕賱賯丕亘賱 賱賱廿賷賯丕賮 丕賱賲丐賯鬲 (Pausable composition) 賲毓 LazyLayoutCacheWindows: 賷爻賲丨 賴匕丕 賱賱賲賰賵賳丕鬲 丕賱賲賰賱賮丞 賮賷 丕賱賯賵丕卅賲 丕賱賰爻賵賱丞 (Lazy Lists) 亘丕賱鬲乇賰賷亘 亘卮賰賱 鬲丿乇賷噩賷 毓亘乇 丕賱廿胤丕乇丕鬲 賱賲賳毓 丕賱鬲賯胤賷毓 (jank). 毓賳丿 丿賲噩賴 賲毓 LazyLayoutCacheWindow貙 賮廿賳賴 賷丨爻賳 亘卮賰賱 賰亘賷乇 爻賱丕爻丞 丕賱鬲賲乇賷乇.
  • onVisibilityChanged: 賷賵賮乇 賴匕丕 丕賱賭 API 胤乇賷賯丞 賲鬲爻賯丞 賱賲毓乇賮丞 賲鬲賶 賷賰賵賳 丕賱賲賰賵賳 賲乇卅賷丕賸 亘丕賱賮毓賱 毓賱賶 丕賱卮丕卮丞貙 賵賴賵 兀賲乇 亘丕賱睾 丕賱兀賴賲賷丞 賱鬲鬲亘毓 賲賯丕賷賷爻 噩賵丿丞 丕賱賲賳鬲噩.

亘丕賱廿囟丕賮丞 廿賱賶 匕賱賰貙 鬲賲 鬲丨爻賷賳 兀丿丕亍 亘丿亍 鬲卮睾賷賱 Compose UI 亘丕爻鬲禺丿丕賲 Baseline Profiles貙 丕賱鬲賷 鬲賯賵賲 亘丕賱鬲丨賵賷賱 丕賱亘乇賲噩賷 丕賱賲爻亘賯 賱賲爻丕乇丕鬲 丕賱賰賵丿 丕賱爻丕禺賳丞 (hot code paths) 賵賯鬲 丕賱鬲孬亘賷鬲貙 賲賲丕 賷囟賲賳 爻乇毓丞 毓乇囟 Compose 賲賳 丕賱廿胤賱丕賯 丕賱兀賵賱.


// 丕爻鬲禺丿丕賲 LazyLayoutCacheWindow 賱鬲丨爻賷賳 兀丿丕亍 丕賱鬲賲乇賷乇
val cacheWindow = LazyLayoutCacheWindow(ahead = 150.dp, behind = 100.dp)
// OR
val cacheWindow = LazyLayoutCacheWindow(aheadFraction = 0.5f, behindFraction = 0.3f)

LazyColumn(state = state, cacheWindow = cacheWindow) {
聽聽聽聽// ... 賲賰賵賳丕鬲 丕賱賯丕卅賲丞 賴賳丕
}
賳氐賷丨丞 賱賱賲胤賵乇賷賳 / Dev Tip: 毓賳丿 丕賱毓賲賱 賲毓 賯賵丕卅賲 賰亘賷乇丞 賮賷 Jetpack Compose貙 丕爻鬲禺丿賲 LazyLayoutCacheWindow 賲毓 Pausable composition. 噩乇亘 賯賷賲 ahead 賵 behind (亘丕賱賭 dp 兀賵 賰賳爻亘丞 毓卮乇賷丞) 賱鬲丨爻賷賳 兀丿丕亍 丕賱鬲賲乇賷乇 亘賳丕亍賸 毓賱賶 賰孬丕賮丞 丕賱賲丨鬲賵賶 賵丨噩賲 丕賱毓賳丕氐乇 賮賷 賯丕卅賲鬲賰.

鬲禺氐賷氐 鬲噩乇亘丞 丕賱賲爻鬲禺丿賲: 賲賳 丕賱賵丕噩賴丞 丕賱禺賱賮賷丞 廿賱賶 卮丕卮丞 丕賱賯賮賱

賮賷 丕賱賳賴丕賷丞貙 賰賱 賴匕賴 丕賱鬲胤賵乇丕鬲 丕賱鬲賯賳賷丞 鬲賴丿賮 廿賱賶 鬲丨爻賷賳 鬲噩乇亘丞 丕賱賲爻鬲禺丿賲. 丨鬲賶 丕賱鬲毓丿賷賱丕鬲 丕賱亘爻賷胤丞 賮賷 賵丕噩賴丞 丕賱賲爻鬲禺丿賲 賷賲賰賳 兀賳 鬲丨丿孬 賮乇賯丕賸 賰亘賷乇丕賸 賮賷 丕賱廿賳鬲丕噩賷丞 賵丕賱乇囟丕. 毓賱賶 爻亘賷賱 丕賱賲孬丕賱貙 賷賵囟丨 賲賯丕賱 毓賳 賴賵丕鬲賮 Pixel 賰賷賮 兀賳 鬲睾賷賷乇 丕禺鬲氐丕乇丕鬲 卮丕卮丞 丕賱賯賮賱 丕賱丕賮鬲乇丕囟賷丞 (賲孬賱 鬲丨賵賷賱 夭乇 丕賱賰丕賲賷乇丕 廿賱賶 賰丕賲賷乇丕 丕賱賮賷丿賷賵 丕賱賲禺氐氐丞貙 兀賵 丕賱賲氐亘丕丨 丕賱賷丿賵賷 廿賱賶 賵囟毓 毓丿賲 丕賱廿夭毓丕噩) 賷賲賰賳 兀賳 賷賵賮乇 爻丕毓丕鬲 賲賳 丕賱廿丨亘丕胤 丕賱賷賵賲賷.

賮賷 毓丕賱賲 丕賱賷賵賲 丕賱賲丿賮賵毓 亘丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷貙 賷賲賰賳 賱賵賰賱丕亍 丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 丕賱賲丿賲噩賷賳 賮賷 丕賱鬲胤亘賷賯丕鬲 兀賳 賷兀禺匕賵丕 賴匕丕 丕賱鬲禺氐賷氐 禺胤賵丞 兀亘毓丿. 賷賲賰賳賴賲 鬲毓賱賲 鬲賮囟賷賱丕鬲 丕賱賲爻鬲禺丿賲 賵爻賱賵賰賷丕鬲賴貙 賵賲賳 孬賲 鬲賰賷賷賮 賵丕噩賴丞 丕賱賲爻鬲禺丿賲 丿賷賳丕賲賷賰賷丕賸 賱鬲賱亘賷丞 丕丨鬲賷丕噩丕鬲賴 賮賷 丕賱賵賯鬲 丕賱賮毓賱賷. 鬲禺賷賱 鬲胤亘賷賯丕賸 賷賯鬲乇丨 鬲賱賯丕卅賷丕賸 賵囟毓 毓丿賲 丕賱廿夭毓丕噩 亘賳丕亍賸 毓賱賶 噩丿賵賱 賲賵丕毓賷丿賰貙 兀賵 賷亘乇夭 賵馗丕卅賮 賲毓賷賳丞 賮賷 卮丕卮丞 丕賱賯賮賱 毓賳丿賲丕 賷爻鬲卮毓乇 兀賳賰 賮賷 賲賵賯賮 賲毓賷賳 (賲孬賱 丕賱丨丕噩丞 廿賱賶 鬲爻噩賷賱 賮賷丿賷賵 爻乇賷毓). 賴匕丕 賴賵 賵毓丿 丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 賱賱賲胤賵乇賷賳: 廿賳卮丕亍 鬲噩丕乇亘 賱丕 鬲鬲賰賷賮 賲毓 丕賱賲爻鬲禺丿賲 賮丨爻亘貙 亘賱 鬲鬲賵賯毓 丕丨鬲賷丕噩丕鬲賴 兀賷囟丕賸.

賷鬲胤賱亘 鬲丨賯賷賯 賴匕丕 丕賱賲爻鬲賵賶 賲賳 丕賱鬲禺氐賷氐 丕賱賲乇賵賳丞 賮賷 丕賱亘賳賷丞 丕賱鬲丨鬲賷丞 賱賱賵丕噩賴丞 丕賱禺賱賮賷丞貙 賵賯丿乇丞 丕賱賵丕噩賴丞 丕賱兀賲丕賲賷丞 毓賱賶 鬲賯丿賷賲 丕賱賲賰賵賳丕鬲 丿賷賳丕賲賷賰賷丕賸貙 賵賴賵 賲丕 鬲賵賮乇賴 亘乇賵鬲賵賰賵賱丕鬲 賲孬賱 A2UI. 廿賳 丕賱爻毓賷 賳丨賵 賵丕噩賴丕鬲 賲爻鬲禺丿賲 AI-native 賱賷爻 賮賯胤 賲爻毓賶 鬲賯賳賷丕賸貙 亘賱 賴賵 丕爻鬲孬賲丕乇 賮賷 鬲丨賵賷賱 鬲噩乇亘丞 丕賱賲爻鬲禺丿賲 賲賳 鬲賮丕毓賱 孬丕亘鬲 廿賱賶 丨賵丕乇 匕賰賷 賵賲禺氐氐.

賲賱丕丨馗丞 賴賳丿爻賷丞: 鬲氐賲賷賲 賵丕噩賴丕鬲 賲爻鬲禺丿賲 賯丕亘賱丞 賱賱鬲禺氐賷氐 丿賷賳丕賲賷賰賷賸丕 亘賵丕爻胤丞 丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 賷鬲胤賱亘 亘賳賷丞 賲乇賳丞 鬲爻賲丨 亘鬲毓丿賷賱 丕賱賲賰賵賳丕鬲 賵丕賱賵馗丕卅賮 丿賵賳 廿毓丕丿丞 賳卮乇 丕賱鬲胤亘賷賯. 亘乇賵鬲賵賰賵賱丕鬲 賲孬賱 A2UI 鬲爻丕賴賲 賮賷 鬲丨賯賷賯 匕賱賰 賲賳 禺賱丕賱 鬲賲賰賷賳 丕賱賵賰賷賱 賲賳 賵氐賮 賲賰賵賳丕鬲 丕賱賵丕噩賴丞 丿賷賳丕賲賷賰賷丕賸貙 賲賲丕 賷賯賱賱 賲賳 丕賱丕乇鬲亘丕胤 亘賷賳 丕賱賵丕噩賴丞 丕賱禺賱賮賷丞 賵丕賱賵丕噩賴丞 丕賱兀賲丕賲賷丞.

禺丕鬲賲丞

賱賯丿 兀丨丿孬 丿賲噩 丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 賲毓 兀胤乇 毓賲賱 鬲胤賵賷乇 丕賱兀噩賴夭丞 丕賱賲丨賲賵賱丞 丕賱丨丿賷孬丞貙 賲孬賱 Jetpack Compose貙 孬賵乇丞 賮賷 胤乇賷賯丞 亘賳丕亍 丕賱鬲胤亘賷賯丕鬲. 賲賳 爻賷乇 丕賱毓賲賱 丕賱賵賰賷賱 丕賱匕賷 賷丿賷乇 丕賱賲賴丕賲 丕賱賲毓賯丿丞 賮賷 丕賱爻丨丕亘丞貙 廿賱賶 賵丕噩賴丕鬲 丕賱賲爻鬲禺丿賲 丕賱兀氐賱賷丞 賱賱匕賰丕亍 丕賱丕氐胤賳丕毓賷 丕賱鬲賷 鬲賯賱賱 賲賳 丕賱賰賵丿 賵丕賱鬲賰賱賮丞貙 賵氐賵賱丕賸 廿賱賶 鬲丨爻賷賳丕鬲 丕賱兀丿丕亍 丕賱鬲賷 鬲囟賲賳 鬲噩乇亘丞 賲爻鬲禺丿賲 爻賱爻丞貙 鬲鬲噩賲毓 賴匕賴 丕賱鬲賯賳賷丕鬲 賱鬲賲賰賷賳 丕賱賲胤賵乇賷賳 賲賳 廿賳卮丕亍 鬲胤亘賷賯丕鬲 匕賰賷丞 賵賲賵孬賵賯丞 賵賮毓丕賱丞 亘卮賰賱 睾賷乇 賲爻亘賵賯.

丕賱丿乇賵爻 丕賱賲爻鬲賮丕丿丞 賲賳 毓賲丕賱賯丞 丕賱氐賳丕毓丞 賲孬賱 Instagram Direct貙 賵鬲胤賵賷乇 兀丿賵丕鬲 賲孬賱 ADK貙 AG-UI貙 賵 A2UI貙 鬲賵賮乇 禺乇賷胤丞 胤乇賷賯 賵丕囟丨丞 賱賱賲囟賷 賯丿賲丕賸. 廿賳 丕賱鬲乇賰賷夭 毓賱賶 丕賱亘賳賶 丕賱賲毓賲丕乇賷丞 丕賱賳馗賷賮丞貙 鬲賯賱賷賱 丕賱爻賷丕賯 丕賱賲禺氐氐貙 賵鬲胤亘賷賯 兀賮囟賱 賲賲丕乇爻丕鬲 丕賱兀丿丕亍貙 賰賱賴丕 毓賳丕氐乇 丨丕爻賲丞 賮賷 亘賳丕亍 賲爻鬲賯亘賱 丕賱鬲胤亘賷賯丕鬲 丕賱匕賰賷丞. 賳丿毓賵賰賲貙 兀賷賴丕 丕賱賲賴賳丿爻賵賳 賵丕賱賲胤賵乇賵賳貙 賱丕爻鬲賰卮丕賮 賴匕賴 丕賱廿賲賰丕賳賷丕鬲貙 賵鬲噩乇亘丞 賴匕賴 丕賱兀丿賵丕鬲貙 賵賲卮丕乇賰丞 廿亘丿丕毓丕鬲賰賲. 賰賷賮 鬲乇賵賳 賲爻鬲賯亘賱 鬲胤亘賷賯丕鬲 丕賱兀賳丿乇賵賷丿 丕賱賲丿毓賵賲丞 亘丕賱匕賰丕亍 丕賱丕氐胤賳丕毓賷責 賵賲丕 賴賷 丕賱鬲丨丿賷丕鬲 丕賱鬲賷 鬲賵丕噩賴賵賳賴丕 賮賷 丿賲噩 賴匕賴 丕賱鬲賯賳賷丕鬲責 卮丕乇賰賵賳丕 丌乇丕亍賰賲 賮賷 丕賱鬲毓賱賷賯丕鬲!

تعليقات