<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Retrofit网络归档 - 日志</title>
	<atom:link href="https://www.log.show/tag/retrofit%E7%BD%91%E7%BB%9C/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.log.show/tag/retrofit网络/</link>
	<description>LOG.SHOW</description>
	<lastBuildDate>Sat, 13 Dec 2025 02:50:29 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.log.show/wp-content/uploads/2025/11/cropped-logo-32x32.png</url>
	<title>Retrofit网络归档 - 日志</title>
	<link>https://www.log.show/tag/retrofit网络/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Android重构项目的第一步</title>
		<link>https://www.log.show/log/android-refactoring-an-project/</link>
					<comments>https://www.log.show/log/android-refactoring-an-project/#respond</comments>
		
		<dc:creator><![CDATA[LOGGER]]></dc:creator>
		<pubDate>Sat, 13 Dec 2025 02:50:29 +0000</pubDate>
				<category><![CDATA[LOG]]></category>
		<category><![CDATA[Android Jetpack]]></category>
		<category><![CDATA[Android应用开发]]></category>
		<category><![CDATA[Glide图片加载]]></category>
		<category><![CDATA[Hilt依赖注入]]></category>
		<category><![CDATA[Kotlin协程]]></category>
		<category><![CDATA[MVVM架构]]></category>
		<category><![CDATA[Navigation组件]]></category>
		<category><![CDATA[Retrofit网络]]></category>
		<category><![CDATA[ViewBinding]]></category>
		<category><![CDATA[架构分层]]></category>
		<guid isPermaLink="false">https://log.show/?p=463</guid>

					<description><![CDATA[<p>下面的内容基于MVVM架构，不适用于纯Jetpack Compose的项目 目录结构 开启Viewbindin [&#8230;]</p>
<p><a href="https://www.log.show/log/android-refactoring-an-project/">Android重构项目的第一步</a>最先出现在<a href="https://www.log.show">日志</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">下面的内容基于MVVM架构，不适用于纯Jetpack Compose的项目</p>



<h2 class="wp-block-heading">目录结构</h2>



<pre class="wp-block-code"><code>com.example.myapp
├── App.kt                  // Application类 (用于初始化Hilt, Timber等)
├── di                      // Dependency Injection (依赖注入模块)
│   ├── NetworkModule.kt    // Retrofit/OkHttp 注入配置
│   └── DatabaseModule.kt   // Room 数据库注入配置
├── data                    // 数据层 (Data Layer)
│   ├── local               // 本地数据源 (Room, SharedPreferences)
│   │   ├── AppDatabase.kt
│   │   ├── dao
│   │   └── entity
│   ├── remote              // 网络数据源 (Retrofit)
│   │   ├── ApiService.kt
│   │   └── model           // 服务端返回的 JSON 实体类 (DTO)
│   ├── repository          // 仓库层 (协调 Local 和 Remote 数据)
│   │   └── UserRepository.kt
│   └── Model.kt            // 领域模型 (App内部使用的纯净Model)
├── ui                      // UI 层 (View &amp; ViewModel)
│   ├── base                // 基类
│   │   ├── BaseActivity.kt
│   │   ├── BaseFragment.kt
│   │   └── BaseViewModel.kt
│   ├── main                // 主界面功能模块
│   │   ├── MainActivity.kt
│   │   └── MainViewModel.kt
│   ├── login               // 登录功能模块
│   │   ├── LoginFragment.kt
│   │   └── LoginViewModel.kt
│   └── adapter             // RecyclerView 适配器 (如通用性强可单独放)
└── utils                   // 工具类和扩展函数
    ├── Constants.kt
    ├── Extensions.kt       // Kotlin 扩展 (ViewExt, StringExt)
    └── DateUtils.kt</code></pre>



<h2 class="wp-block-heading">开启Viewbinding</h2>



<pre class="wp-block-code"><code>android {
    ...
    buildFeatures {
        viewBinding = true
    }
}</code></pre>



<h2 class="wp-block-heading">导入需要的库和插件</h2>



<h4 class="wp-block-heading">1. 架构组件 (Android Jetpack)</h4>



<p class="wp-block-paragraph">这是 Google 官方的基础设施，用于生命周期管理和导航。</p>



<ul class="wp-block-list">
<li><strong>Lifecycle &amp; ViewModel:</strong> 管理生命周期，防止内存泄漏。</li>



<li><strong>Navigation Component:</strong> 处理 Fragment 之间的跳转（推荐单 Activity 多 Fragment 架构）。</li>
</ul>



<pre class="wp-block-code"><code>// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.2"
// Lifecycle runtime
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2"
// Navigation Component
implementation "androidx.navigation:navigation-fragment-ktx:2.7.5"
implementation "androidx.navigation:navigation-ui-ktx:2.7.5"</code></pre>



<h4 class="wp-block-heading">2. 依赖注入 (Dependency Injection)（可选，有的项目用不到）</h4>



<ul class="wp-block-list">
<li><strong>Hilt:</strong> Google 官方推荐，基于 Dagger 但更易用。它能帮你自动管理对象的创建和生命周期（如自动注入 Repository 到 ViewModel）。也可以使用Dagger2。</li>
</ul>



<pre class="wp-block-code"><code>implementation "com.google.dagger:hilt-android:2.48"
kapt "com.google.dagger:hilt-android-compiler:2.48"</code></pre>



<h4 class="wp-block-heading">3. 网络请求 (Networking)</h4>



<ul class="wp-block-list">
<li><strong>Retrofit:</strong> 业界标准的 HTTP 客户端。</li>



<li><strong>OkHttp:</strong> Retrofit 的底层支持，用于处理拦截器（Logging, Header）。</li>



<li><strong>Moshi (或 Gson):</strong> 用于 JSON 解析。Moshi 对 Kotlin 支持更好。</li>
</ul>



<pre class="wp-block-code"><code>// Retrofit
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-moshi:2.9.0" // 或 converter-gson
// OkHttp Logging (调试接口用)
implementation "com.squareup.okhttp3:logging-interceptor:4.11.0"</code></pre>



<h4 class="wp-block-heading">4. 异步处理 (Asynchronous)</h4>



<ul class="wp-block-list">
<li><strong>Coroutines (协程):</strong> Kotlin 的杀手级特性，用于替代线程池和 RxJava。</li>
</ul>



<pre class="wp-block-code"><code>implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3"</code></pre>



<h4 class="wp-block-heading">5. 图片加载 (Image Loading)</h4>



<ul class="wp-block-list">
<li><strong>Glide:</strong> 传统 View 开发中最稳健的选择，API 简单，缓存机制强大。</li>



<li><strong>备选Fresco:</strong> 实际占用比Glide更小。</li>
</ul>



<pre class="wp-block-code"><code>implementation "com.github.bumptech.glide:glide:4.16.0"
//如果你需要其他支持，可以选择导入。例如gif和其他内容管理</code></pre>



<h4 class="wp-block-heading">6. 其他实用工具</h4>



<ul class="wp-block-list">
<li><strong>Timber:</strong> 更好的 Log 打印工具（自动处理 Tag，Release 版自动静音）。</li>



<li><strong>LeakCanary:</strong> (仅 Debug) 内存泄漏检测神器。</li>
</ul>



<pre class="wp-block-code"><code>implementation "com.jakewharton.timber:timber:5.0.1"
debugImplementation "com.squareup.leakcanary:leakcanary-android:2.12"</code></pre>



<ul class="wp-block-list">
<li><strong>AndroidUtilCode:</strong> 国内Android开发者几乎都在用的工具集合库</li>
</ul>



<pre class="wp-block-code"><code>// if u use AndroidX, use the following
implementation 'com.blankj:utilcodex:1.31.1'

// Not in maintenance
implementation 'com.blankj:utilcode:1.30.7'

//文档页面
https:&#47;&#47;github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/README-CN.md</code></pre>



<h2 class="wp-block-heading">总结</h2>



<p class="wp-block-paragraph">XML (Layouts) + ViewBinding + MVVM + Coroutines + Hilt + Retrofit + Jetpack Navigation</p>



<p class="wp-block-paragraph">一个基础框架的要求很简单：解耦，安全，简洁，可用程度高，上手成本低。如果你有兴趣，可以关注这个文章，之后我会上传打包好的内容！</p>
<p><a href="https://www.log.show/log/android-refactoring-an-project/">Android重构项目的第一步</a>最先出现在<a href="https://www.log.show">日志</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.log.show/log/android-refactoring-an-project/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
