アプリ関連ニュース
- 2023年4月10日
- 技術情報
Meta adds multiplayer games during messenger video calls
Facebook Gaming, a division of Meta, has announced that you can now play games during video calls on Messenger. At launch, there will be 14 free games available for Messenger video calls on iOS, Android, and the web.
To access the game, you’ll need to start a video call in Messenger, tap the middle group mode button, then tap the Play icon. From there, you can browse your game library. The company states that at least two people must be on the call to play.

The company says it is working to bring more free games to the platform this year. Facebook Gaming has contacted the company to developers interested in integrating the feature into their games. is calling
Facebook has been experimenting with Messenger games in recent years, and the idea of playing games quickly and easily while video chatting could be a welcome addition for some users. I have.
The launch comes as Facebook recently announced that it was testing the ability for a user to access his Messenger inbox within the Facebook app. In 2016, Facebook pushed people to its Messenger app by removing messaging functionality on its mobile web app, a move that angered many users. The company is now testing a reversal of their decision.
Yuuma
yuuma at 2023年04月10日 10:00:00
- 2023年4月07日
- 技術情報
Laravel : アクセサとミューテタについて
Laravelでは、アクセサーとミューテーターは、モデルの属性を取得したり値を設定したりする際に操作するためのメソッドです。
例えば、以下の属性を含んだ “Article” モデルがあるとします: “title”、”body”、”published_at “です。title “属性は常に前後の空白が取り除かれ、”published_at “属性は常にdatetimeオブジェクトとして保存されることを保証したいです。これを実現するには、各属性に対してアクセサーとミューテーターメソッドを作成します。
以下は、”title “属性のアクセサーメソッドとミューテーターメソッドを作成する例で説明しています:
class Article extends Model
{
// Accessor method for the "title" attribute
public function getTitleAttribute($value)
{
return trim($value);
}
// Mutator method for the "title" attribute
public function setTitleAttribute($value)
{
$this->attributes['title'] = trim($value);
}
}
以下は、”published_at “属性のアクセサーメソッドとミューテーターメソッドを作成する例で説明しています:
class Article extends Model
{
// Accessor method for the "published_at" attribute
public function getPublishedAtAttribute($value)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $value);
}
// Mutator method for the "published_at" attribute
public function setPublishedAtAttribute($value)
{
$this->attributes['published_at'] = Carbon::parse($value)->format('Y-m-d H:i:s');
}
}
この例では、「getPublishedAtAttribute」メソッドで「published_at」属性を文字列からCarbon datetimeオブジェクトに変換することで、作業をしやすくします。setPublishedAtAttribute」メソッドも、モデルに保存する前に値をdatetimeオブジェクトに変換しています。
このようにアクセッサとミューテータを使用することで、モデルを使うたびに手動でこれらの操作を行わなくても、モデルの属性が常に希望する形式で保存・取得されることを保証することができます。
金曜担当 – Ami
asahi at 2023年04月07日 10:00:00
- 2023年4月04日
- 技術情報
Best 3 PDF packages for laravel
Today, I would like to share about most used PDF packages in laravel. Let’s take a look.
1. laravel-dompdf
https://github.com/barryvdh/laravel-dompdf
2. TCPDF
https://github.com/tecnickcom/TCPDF
3. mpdf
These packages are so popular for PHP laravel users and easy to use. They’ve also got high stars in github.
You can explore with each github link for usage and more details.
This is all for now. Hope you enjoy that.
By Asahi
waithaw at 2023年04月04日 10:00:00
- 2023年4月03日
- 技術情報
Twitter announces their new API with free, basic and enterprise levels
After shutting down the free API access, Twitter finally announced its new API pricing structure. These three tiers include a free tier aimed primarily at content posting bots, a $100/month basic tier, and an expensive enterprise tier. According to the company, access to the Ads API is free for any level of subscription.
The story of the Twitter API began in February when the company announced that free access to the API would end in a few days. After heavy criticism, Elon Musk said the company would offer a free tier to bots that provide “good content.” He later said the basic tier would start at $100 a month without elaborating on the level of access. After more than 45 days, the company finally provided information about its new API.
The new API offering looks like a money grab. The free tier gives you access to just 1,500 post requests per month and sign in with Twitter. The base level, considered “Enthusiast/Student”, provides 50,000 post requests and 10,000 read requests per month per app. Developers who want access to more data should apply for Enterprise Access.
Previously, with the introduction of v2 in 2020, Twitter offered multiple access tiers to developers such as Essential and Elevated, giving them access to between 500,000 and 2 million tweets per month. App makers that fall into that usage category are currently required to subscribe to an Enterprise plan.
Yuuma
yuuma at 2023年04月03日 10:00:00
- 2023年3月31日
- 技術情報
Dart Object ListのKey-valueで重複を削除する方法
DartでKey-ValueによるObjectのリストから重複を削除するには、toSet()が利用できます。最初にtoSetメソッドを呼び出し、その後、再びリストに変換するだけです。
以下に例を示します。
class _Product {
final name;
final type;
final price;
_Product({
required this.name,
required this.type,
required this.price,
});
String toJson() {
return "{ name: $name, type: $type, price: $price}";
}
}
toSetを呼び出してみます。
final products = [
_Product(name: "USB", type: "A", price: 10), // same
_Product(name: "USB", type: "A", price: 10), // same
_Product(name: "USB", type: "B", price: 12),
_Product(name: "USB", type: "C", price: 11),
_Product(name: "Mouse", type: "A", price: 10),
_Product(name: "Mouse", type: "B", price: 12), // same
_Product(name: "Mouse", type: "B", price: 12), // same
_Product(name: "Mouse", type: "C", price: 10),
_Product(name: "Laptop", type: "A", price: 100),
_Product(name: "Laptop", type: "B", price: 120), // same
_Product(name: "Laptop", type: "B", price: 120), // same
];
print(products.length); // 11
print(products.toSet().length); // 11
toSet()で呼び出しても、同じ長さになっています。その時、hashCodeを確認してみます。
products.forEach((element) {
print(element.hashCode);
// 257416280
// 1045932166
// 730517725
// 586146378
// 215518337
// 471982393
// 775971279
// 335683510
// 844714385
// 633234047
// 1021163746
});
それぞれのhashCodeは異なっているため、hashCodeと==演算子をオーバーライドする必要があります。
class _Product {
...
@override
bool operator ==(Object other) {
return other is _Product && other.hashCode == hashCode;
}
@override
int get hashCode => Object.hash(name, type, price);
}
このクラスはリストを持ちませんから、Object.hash関数を使用しますが、リスト変数を含む場合は、代わりにObject.hashAllを使用します。
もう一度、toSetを呼び出してみます。
print(products.length); // 11
print(products.toSet().length); // 8
products.toSet().forEach((element) => print(element.toJson()));
// { name: USB, type: A, price: 10}
// { name: USB, type: B, price: 12}
// { name: USB, type: C, price: 11}
// { name: Mouse, type: A, price: 10}
// { name: Mouse, type: B, price: 12}
// { name: Mouse, type: C, price: 10}
// { name: Laptop, type: A, price: 100}
// { name: Laptop, type: B, price: 120}
なお、重複するものはここでは表示しませんでした。
金曜担当 – Ami
asahi at 2023年03月31日 11:00:00