Skip to content

Commit 6473ffb

Browse files
Merge pull request #40 from flutteruniv/feature/fix-article-title-generation
Fix AI article title generation accuracy
2 parents 7913824 + 5afc7df commit 6473ffb

File tree

2 files changed

+152
-11
lines changed

2 files changed

+152
-11
lines changed

scripts/generate_article.py

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
# React Native関連
2121
"React Native Blog": "https://reactnative.dev/blog/rss.xml",
2222
"React Native Community": "https://medium.com/feed/react-native-community",
23+
"Expo Blog": "https://expo.dev/blog.rss",
24+
"Callstack Blog": "https://www.callstack.com/blog/rss.xml",
25+
"Infinite Red": "https://infinite.red/feed.xml",
26+
"Aman Mittal": "https://amanhimself.dev/rss.xml",
2327
"Reddit React Native": "https://www.reddit.com/r/reactnative/.rss",
2428
"Qiita (React Native)": "https://qiita.com/tags/react-native/feed",
2529
"React Native YouTube": "https://www.youtube.com/feeds/videos.xml?channel_id=UCMYS7PYW8T9lHVtNXbLvR3w",
@@ -49,9 +53,14 @@
4953
"dev.to": "https://dev.to/feed",
5054
"Hacker News": "https://hnrss.org/frontpage",
5155
"Google Developers": "https://developers.googleblog.com/feeds/posts/default",
56+
"Connpass Events": "https://connpass.com/explore/ja.atom",
57+
58+
# AI・機械学習
5259
"OpenAI Blog": "https://openai.com/blog/rss.xml",
60+
"Anthropic News": "https://www.anthropic.com/news/rss",
61+
"GitHub Blog": "https://github.blog/feed.xml",
5362
"Reddit Artificial": "https://www.reddit.com/r/artificial/.rss",
54-
"Connpass Events": "https://connpass.com/explore/ja.atom",
63+
"Reddit Machine Learning": "https://www.reddit.com/r/MachineLearning/.rss",
5564
}
5665
# --- ここまで ---
5766

@@ -117,6 +126,7 @@ def fetch_recent_articles():
117126
articles_text += check_flutter_changelog()
118127

119128
for name, url in RSS_FEEDS.items():
129+
print(f"Processing {name}...")
120130
feed = feedparser.parse(url)
121131
for entry in feed.entries:
122132
# 記事の公開日をdatetimeオブジェクトに変換
@@ -127,14 +137,17 @@ def fetch_recent_articles():
127137
elif hasattr(entry, 'updated_parsed') and entry.updated_parsed:
128138
published_date = datetime.datetime(*entry.updated_parsed[:6])
129139
else:
130-
# 日付が取得できない場合は現在の日付を使用(最新として扱う)
131-
published_date = datetime.datetime.now()
132-
except Exception:
133-
# 日付の変換に失敗した場合は現在の日付を使用
134-
published_date = datetime.datetime.now()
140+
# 日付が取得できない場合はスキップ(古い記事の可能性が高い)
141+
print(f"Warning: No date found for article '{entry.title}' from {name}, skipping")
142+
continue
143+
except Exception as e:
144+
# 日付の変換に失敗した場合はスキップ
145+
print(f"Warning: Date parsing failed for article '{entry.title}' from {name}: {e}, skipping")
146+
continue
135147

136148
# 公開日が指定された日付よりも新しいかチェック
137149
if published_date >= since_date:
150+
print(f"Including article: '{entry.title}' from {name} (published: {published_date.strftime('%Y-%m-%d')})")
138151
# Connpassイベントの場合はモバイル開発関連のみフィルタリング
139152
if name == "Connpass Events":
140153
mobile_keywords = ["flutter", "react native", "swift", "ios", "android", "kotlin", "mobile", "モバイル"]
@@ -212,6 +225,7 @@ def generate_article_with_ai(articles, slack_links=""):
212225
- **チーム開発**: コードレビュー、設計パターン、プロジェクト管理、チームワーク
213226
- **キャリア**: 技術選択、学習方法、業界動向、エンジニアとしての成長
214227
- 新機能や重要なアップデート情報を優先
228+
- **AI関連の重要リリース**: OpenAI、Anthropic(Claude)、Google(Gemini)などの主要AI企業の新モデルリリースやAPI更新は必須で含める
215229
- ベストプラクティスやアーキテクチャに関する記事を重視
216230
- 個人的な体験談や基本的なチュートリアルは避ける
217231
- **Flutter大学Slackコミュニティセクション**: Slackで話題になった記事がある場合、「## Flutter大学で話題になっていた記事」セクションを追加し、各記事について2-3文で簡潔に説明する
@@ -245,12 +259,17 @@ def generate_article_with_ai(articles, slack_links=""):
245259
## Frontmatter設定
246260
以下の指示に従ってfrontmatterを生成する:
247261
248-
**title**: 必ず「【週刊ニュース】」で始まり、今週の最も重要な2-3つのトピックを具体的に列挙し、「ほか」で終わるタイトルを作成する:
249-
- "【週刊ニュース】Flutter 3.32.8、Firebase AI機能、React Native SwiftUI統合ほか"
250-
- "【週刊ニュース】Swift 6.2 Actor最適化、Kotlin オフラインAR、Jetpack Composeナビゲーションほか"
251-
- "【週刊ニュース】watchOS 64bit要件、Gemini 2.5 Flash安定版、TanStack Query最適化ほか"
262+
**title**: 必ず「【週刊ニュース】」で始まり、今週の記事リストに実際に含まれている最も重要な2-3つのトピックを正確に列挙し、「ほか」で終わるタイトルを作成する。
252263
253-
具体的なバージョン番号、機能名、技術名を使用し、読者が一目で今週の主要トピックを把握できるようにする。
264+
重要:
265+
- 実際の記事リストに含まれていない情報(架空のバージョン番号や機能名)は絶対に使用しない
266+
- 提供されたニュースリストの内容のみから具体的なトピックを抽出する
267+
- 実際の記事タイトルや内容から主要なキーワードを正確に抜き出す
268+
269+
例:
270+
- 実際にFlutterのCHANGELOG更新があれば「【週刊ニュース】Flutter CHANGELOG更新、Material/Cupertino分離議論、React Native Hapticsライブラリほか」
271+
- Gemini関連の記事があれば「【週刊ニュース】Gemini 2.5 Flash-Lite安定版、React Native WiFi Vault、SwiftUI PencilKit統合ほか」
272+
- 記事リストの内容に基づいて正確にタイトルを生成する
254273
255274
**description**: 長い要約文ではなく、SNSでシェアしたくなるような短くてキャッチーな一文を作成する。以下を参考に:
256275
- "今週注目の技術革新をピックアップ"
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
---
2+
title: "【週刊ニュース】GPT-5、Claude Opus 4.1、codex CLIはClaude Codeとなるか?"
3+
slug: "mobile-news-20250811"
4+
author: "kboy"
5+
description: "今週注目のモバイル開発トレンド速報!"
6+
pubDatetime: "2025-08-11"
7+
tags: ["ニュース", "モバイル開発", "Flutter", "React Native", "Swift", "Kotlin", "AI"]
8+
layout: "../../layouts/BlogPost.astro"
9+
---
10+
11+
今週もモバイル開発界隈のホットなニュースをピックアップしました!Flutter、React Native、Swift/iOS、Kotlin/Android、そして生成AI関連の話題まで、開発者にとって見逃せない情報が満載です。
12+
13+
## Flutter・クロスプラットフォーム開発
14+
15+
### Flutter Team AMA - Decoupling material & cupertino
16+
17+
https://www.reddit.com/r/FlutterDev/comments/1mlt9i8/flutter_team_ama_decoupling_material_cupertino/
18+
19+
FlutterチームによるAMAで、Material DesignとCupertino(iOSスタイル)のデザインシステムの分離について議論されました。これにより、各プラットフォームのネイティブなルックアンドフィールをより忠実に再現できるようになり、カスタマイズ性も向上する見込みです。開発者は、より柔軟にデザインを選べるようになります。注目すべきは、この変更がFlutterのUI設計における大きな転換点となりうる点です。
20+
21+
22+
### Flutter で値オブジェクトに extension types を導入して 31% パフォーマンスが改善した話
23+
24+
https://zenn.dev/uzu_tech/articles/flutter-extension-types-performance
25+
26+
Flutterにおけるパフォーマンス最適化事例。値オブジェクトにextension typesを導入することで、31%のパフォーマンス改善を実現したという報告です。具体的な実装方法やベンチマーク結果が公開されており、Flutter開発においてパフォーマンスボトルネックを抱えている開発者にとって非常に参考になります。 値オブジェクトの設計を見直すことで、アプリのパフォーマンスを大幅に向上できる可能性を示しています。
27+
28+
29+
### What's your opinion on the flutter clean architecture?
30+
31+
https://www.reddit.com/r/FlutterDev/comments/1ml2ebp/whats_your_opinion_on_the_flutter_clean/
32+
33+
Flutterにおけるクリーンアーキテクチャに関する議論のスレッドです。様々な開発者が自身の経験や意見を共有しており、大規模なFlutterアプリ開発におけるアーキテクチャ設計のベストプラクティスを探求する上で貴重な情報源となります。 経験豊富な開発者の意見を参考に、自身のプロジェクトに最適なアーキテクチャを選択することが重要です。
34+
35+
36+
## React Native開発
37+
38+
### React Native Haptics: A high-performance React Native library for iOS haptics and Android vibration effects
39+
40+
https://www.reddit.com/r/reactnative/comments/1mmq4kw/react_native_haptics_a_highperformance_react/
41+
42+
高性能なReact Nativeライブラリ「React Native Haptics」が登場しました。iOSのHapticsとAndroidのバイブレーションを効率的に制御できます。UI/UXの向上に直結するこのライブラリは、ユーザー体験をより豊かにする上で重要な役割を果たします。 特に、フィードバックの精度が向上することで、より自然で直感的なインタラクションを実現できます。
43+
44+
### React Native Upgrade issue
45+
46+
https://www.reddit.com/r/reactnative/comments/1mmuomr/react_native_upgrade_issue/
47+
48+
React Nativeのバージョンアップに伴う問題に関するスレッドです。バージョンアップ時のトラブルシューティングや解決策に関する情報が得られます。React Native開発者は、バージョンアップに伴う潜在的な問題への対応策を事前に検討する必要があります。
49+
50+
## Swift・iOS開発
51+
52+
### TIL: Do not share AppIntents between Widgets and Live Activities!
53+
54+
https://www.reddit.com/r/iOSProgramming/comments/1mmmfih/til_do_not_share_appintents_between_widgets_and/
55+
56+
AppIntentsをWidgetとLive Activities間で共有しないことの重要性を指摘した投稿です。このベストプラクティスに従うことで、予期せぬ動作やバグを回避することができます。 iOS開発者は、AppIntentsの使用方法について、Appleの公式ドキュメントをよく理解しておく必要があります。
57+
58+
59+
### SwiftUI + PencilKit: Make a tappable button inside the canvas
60+
61+
https://www.reddit.com/r/iOSProgramming/comments/1mmvfxt/swiftui_pencilkit_make_a_tappable_button_inside/
62+
63+
SwiftUIとPencilKitを組み合わせたキャンバス内にボタンを実装する方法に関するスレッドです。この技術は、クリエイティブなアプリ開発において非常に有用です。PencilKitとSwiftUIの統合に関する深い知識が必要になります。
64+
65+
66+
### Introducing MetaCellKit, an Open Source (MIT license) Swift package implementing a highly configurable table view cell system for iOS apps
67+
68+
https://www.reddit.com/r/iOSProgramming/comments/1mljvia/introducing_metacellkit_an_open_source_mit/
69+
70+
高度に設定可能なTableView Cellシステムを実装したオープンソースのSwiftパッケージ「MetaCellKit」が公開されました。iOSアプリ開発におけるTableViewの効率的な管理に役立ちます。コードの再利用性と保守性を向上させることができます。
71+
72+
73+
## Kotlin・Android開発
74+
75+
### Just released SwiftUI like Mesh Gradients for Android
76+
77+
https://www.reddit.com/r/androiddev/comments/1mm0033/just_released_swiftui_like_mesh_gradients_for/
78+
79+
Android向けにSwiftUI風のメッシュグラデーションを実装したライブラリがリリースされました。Androidアプリのデザインの柔軟性を高める上で役立ちます。UI/UXの向上に貢献するライブラリの登場は、開発者の選択肢を広げます。
80+
81+
82+
### What's the state of background processing in 2025?
83+
84+
https://www.reddit.com/r/androiddev/comments/1mlr8jh/whats_the_state_of_background_processing_in_2025/
85+
86+
2025年現在のAndroidにおけるバックグラウンド処理の状態に関する議論です。Androidのバックグラウンド処理に関する最新のガイドラインやベストプラクティスを学ぶことができます。 Android開発者は、OSの制限やバッテリー消費への配慮を考慮した設計を行う必要があります。
87+
88+
89+
### Need help resolving Google AdMob "Dishonest Declarations" policy issue
90+
91+
https://www.reddit.com/r/androiddev/comments/1mm9a6k/need_help_resolving_google_admob_dishonest/
92+
93+
AdMobのポリシー違反に関する問題解決を求めるスレッドです。AdMobを利用したアプリ開発におけるポリシー遵守の重要性を再確認できます。 開発者は、AdMobのポリシーを十分に理解し、遵守する必要があります。
94+
95+
96+
## 生成AI
97+
98+
### GPT-5 and the new era of work
99+
100+
https://openai.com/index/gpt-5-new-era-of-work
101+
102+
OpenAIがGPT-5を発表し、業務における変革の可能性を示唆しました。GPT-5の能力向上は、生産性向上や業務効率化に貢献する可能性を示しています。 しかし、同時に倫理的な課題やセキュリティに関する懸念も考慮する必要があります。
103+
104+
同時にCodex CLIがサブスクで使えるようになったので、以下の記事もバズってましたね!
105+
106+
https://zenn.dev/rimon/articles/be34c4ee9fd4bf
107+
108+
### Claude Opus 4.1
109+
110+
https://www.anthropic.com/news/claude-opus-4-1
111+
112+
Claudeの一番優秀なモデルClaude Opusの最新バージョン4.1が出ました。Opus4.0よりさらに優秀になったと言われています。
113+
114+
## まとめ
115+
116+
今週最も重要なトレンドは、間違いなく**GPT-5****Claude Opus 4.1** です。大手AIモデルの競争が激しいですね!
117+
118+
## 編集後記
119+
120+
今週はGPT-5が発表され、Codex CLIがサブスクで使えるようになったのがデカかったですね。私は最近Claudeしか課金してなかったのですが、久しぶりにChatGPTに課金して、Codex CLIを試してみました。
121+
122+
ちょっと使った感想としては、**Claude Code > Codex CLI > Gemini CLI** といったところです。Codex CLIは全然使えるレベルではありますが、交互に使ってみた感じだとやっぱりClaude Codeの方がなんかいいなーっていう感想です。

0 commit comments

Comments
 (0)